This commit is contained in:
2025-08-27 09:07:28 +08:00
parent 7167230e8d
commit a7ae68a485
5 changed files with 15 additions and 25 deletions

View File

@@ -17,21 +17,12 @@ class QwenImageGenerator:
self.api_key = api_key or ALY_LLM_API_KEY self.api_key = api_key or ALY_LLM_API_KEY
self.model = "qwen-image" self.model = "qwen-image"
def generate_image(self, prompt, n=1, size='1328*1328'): def generate_image(self, prompt, size='1328*1328'): # 移除n参数
"""生成图片 """生成图片
Args: Args:
prompt: 图片描述提示词 prompt: 图片描述提示词
n: 生成图片数量
size: 图片尺寸 size: 图片尺寸
Returns:
dict: 包含生成结果的字典,格式如下:
{
'success': bool, # 操作是否成功
'images': list, # 图片URL列表
'error_msg': str # 错误信息如果成功则为None
}
""" """
try: try:
# 调用文心一言图片生成API # 调用文心一言图片生成API
@@ -39,7 +30,6 @@ class QwenImageGenerator:
api_key=self.api_key, api_key=self.api_key,
model=self.model, model=self.model,
prompt=prompt, prompt=prompt,
n=n,
size=size size=size
) )
@@ -47,6 +37,13 @@ class QwenImageGenerator:
if rsp.status_code == HTTPStatus.OK: if rsp.status_code == HTTPStatus.OK:
# 提取图片URL # 提取图片URL
image_urls = [result.url for result in rsp.output.results] image_urls = [result.url for result in rsp.output.results]
# 修改错误消息移除n参数引用
if not image_urls:
return {
'success': False,
'images': [],
'error_msg': 'API返回空结果图片生成失败'
}
return { return {
'success': True, 'success': True,
'images': image_urls, 'images': image_urls,
@@ -97,7 +94,7 @@ class QwenImageGenerator:
'error_msg': f'保存图片失败: {str(e)}' 'error_msg': f'保存图片失败: {str(e)}'
} }
def generate_and_save_images(self, prompt, n=1, size='1328*1328', save_dir='./'): def generate_and_save_images(self, prompt, size='1328*1328', save_dir='./'):
"""生成图片并保存到本地 """生成图片并保存到本地
Args: Args:
@@ -110,7 +107,7 @@ class QwenImageGenerator:
dict: 包含生成和保存结果的字典 dict: 包含生成和保存结果的字典
""" """
# 生成图片 # 生成图片
generate_result = self.generate_image(prompt, n, size) generate_result = self.generate_image(prompt, size)
if not generate_result['success']: if not generate_result['success']:
return generate_result return generate_result

View File

@@ -51,7 +51,6 @@ async def generate_image(request: GenerateImageRequest):
# 仅生成图片,不保存本地 # 仅生成图片,不保存本地
result = generator.generate_image( result = generator.generate_image(
prompt=request.prompt, prompt=request.prompt,
n=request.n,
size=request.size size=request.size
) )

View File

@@ -34,12 +34,11 @@ def test_get_config():
return False, None return False, None
def test_generate_image(prompt, n=1, size='1328*1328', save_local=True): def test_generate_image(prompt, size='1328*1328', save_local=True):
"""测试生成图片接口 """测试生成图片接口
Args: Args:
prompt: 图片描述提示词 prompt: 图片描述提示词
n: 生成图片数量
size: 图片尺寸 size: 图片尺寸
save_local: 是否保存到本地 save_local: 是否保存到本地
@@ -51,13 +50,12 @@ def test_generate_image(prompt, n=1, size='1328*1328', save_local=True):
headers = {"Content-Type": "application/json"} headers = {"Content-Type": "application/json"}
data = { data = {
"prompt": prompt, "prompt": prompt,
"n": n,
"size": size, "size": size,
"save_local": save_local "save_local": save_local
} }
logger.info(f"调用生成图片接口: {url}") logger.info(f"调用生成图片接口: {url}")
logger.info(f"请求参数: prompt={prompt[:50]}..., n={n}, size={size}, save_local={save_local}") logger.info(f"请求参数: prompt={prompt[:50]}..., size={size}, save_local={save_local}")
# 记录开始时间 # 记录开始时间
start_time = time.time() start_time = time.time()
@@ -109,7 +107,6 @@ def main():
basic_prompt = "一只可爱的小猫在草地上玩耍,阳光明媚,高清细节" basic_prompt = "一只可爱的小猫在草地上玩耍,阳光明媚,高清细节"
generate_success, generate_data = test_generate_image( generate_success, generate_data = test_generate_image(
prompt=basic_prompt, prompt=basic_prompt,
n=1,
size="1328*1328", size="1328*1328",
save_local=True save_local=True
) )
@@ -117,13 +114,11 @@ def main():
# 3. 测试生成图片接口 - 不同参数 # 3. 测试生成图片接口 - 不同参数
if config_success: if config_success:
supported_sizes = config_data["data"].get("supported_sizes", ["1328*1328"]) supported_sizes = config_data["data"].get("supported_sizes", ["1328*1328"])
max_images = min(2, config_data["data"].get("max_images_per_request", 1)) # 为了测试效率最多请求2张
logger.info(f"\n3. 测试生成图片接口 - 不同参数(size={supported_sizes[0]})")
logger.info(f"\n3. 测试生成图片接口 - 不同参数(size={supported_sizes[0]}, n={max_images})")
different_prompt = "美丽的山水风景画,中国水墨画风格" different_prompt = "美丽的山水风景画,中国水墨画风格"
test_generate_image( test_generate_image(
prompt=different_prompt, prompt=different_prompt,
n=max_images,
size=supported_sizes[0], size=supported_sizes[0],
save_local=True save_local=True
) )
@@ -132,8 +127,7 @@ def main():
# 输出测试结果摘要 # 输出测试结果摘要
success_count = sum([config_success, generate_success]) success_count = sum([config_success, generate_success])
total_count = 2 # 基本测试的接口数量 logger.info(f"测试结果: {success_count} 接口测试成功")
logger.info(f"测试结果: {success_count}/{total_count} 接口测试成功")
if __name__ == "__main__": if __name__ == "__main__":