|
|
|
@ -1,44 +1,8 @@
|
|
|
|
|
from http import HTTPStatus
|
|
|
|
|
from urllib.parse import urlparse, unquote
|
|
|
|
|
from pathlib import PurePosixPath
|
|
|
|
|
from dashscope import ImageSynthesis
|
|
|
|
|
from WxMini.Milvus.Config.MulvusConfig import *
|
|
|
|
|
|
|
|
|
|
def generate_image(prompt, model="wanx2.1-t2i-turbo", n=1, size='1024*1024'):
|
|
|
|
|
"""
|
|
|
|
|
根据提示词生成图片
|
|
|
|
|
:param prompt: 提示词
|
|
|
|
|
:param model: 使用的模型,默认为 "wanx2.1-t2i-turbo"
|
|
|
|
|
:param n: 生成图片的数量,默认为 1
|
|
|
|
|
:param size: 图片尺寸,默认为 '1024*1024'
|
|
|
|
|
:return: (success, message) success 为 True 表示成功,False 表示失败;message 为提示信息
|
|
|
|
|
"""
|
|
|
|
|
try:
|
|
|
|
|
print('----同步调用,请稍等----')
|
|
|
|
|
rsp = ImageSynthesis.call(api_key=MODEL_API_KEY, model=model, prompt=prompt, n=n, size=size)
|
|
|
|
|
print('response: %s' % rsp)
|
|
|
|
|
|
|
|
|
|
if rsp.status_code == HTTPStatus.OK:
|
|
|
|
|
# 在当前目录下保存图片
|
|
|
|
|
for result in rsp.output.results:
|
|
|
|
|
file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
|
|
|
|
|
print(f"图片已生成,文件名: {file_name}")
|
|
|
|
|
return True, "图片生成成功"
|
|
|
|
|
else:
|
|
|
|
|
# 生成失败,返回错误信息
|
|
|
|
|
error_message = f"同步调用失败,状态码: {rsp.status_code}, 错误码: {rsp.code}, 错误信息: {rsp.message}"
|
|
|
|
|
print(error_message)
|
|
|
|
|
return False, error_message
|
|
|
|
|
except Exception as e:
|
|
|
|
|
# 捕获异常,返回错误信息
|
|
|
|
|
error_message = f"生成图片时发生异常: {str(e)}"
|
|
|
|
|
print(error_message)
|
|
|
|
|
return False, error_message
|
|
|
|
|
|
|
|
|
|
from WxMini.Utils.ImageUtil import generate_image
|
|
|
|
|
|
|
|
|
|
# 示例调用
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
prompt = "哪吒闹海"
|
|
|
|
|
prompt = "武松打虎"
|
|
|
|
|
success, message = generate_image(prompt)
|
|
|
|
|
if not success:
|
|
|
|
|
print(f"生成失败: {message}")
|
|
|
|
|
print(f"生成失败: {message}")
|
|
|
|
|