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

View File

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

View File

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