修复midjourney提示词包含参考图片时响应格式不正确的问题
This commit is contained in:
parent
f3eb21f5f3
commit
87261dad9f
2
.gitignore
vendored
2
.gitignore
vendored
@ -4,7 +4,7 @@ test/
|
|||||||
|
|
||||||
|
|
||||||
# 忽略所有 文件夹
|
# 忽略所有 文件夹
|
||||||
**/www/files/
|
**/jfile/files/
|
||||||
**/output/
|
**/output/
|
||||||
**/__pycache__/
|
**/__pycache__/
|
||||||
|
|
||||||
|
|||||||
@ -593,12 +593,11 @@ class MidjourneyService:
|
|||||||
|
|
||||||
async for result in self.imagine(client, guild_id, channel_id, prompt, seed):
|
async for result in self.imagine(client, guild_id, channel_id, prompt, seed):
|
||||||
if result.get("status") == "progress":
|
if result.get("status") == "progress":
|
||||||
# 进度信息保持简单
|
# 进度信息只包含必要字段
|
||||||
response = {
|
response = {
|
||||||
"status": "progress",
|
"status": "progress",
|
||||||
"progress": result.get("progress", 0),
|
"progress": result.get("progress", 0),
|
||||||
"success_count": success_count,
|
"seed": seed # 添加seed字段
|
||||||
"error_count": error_count
|
|
||||||
}
|
}
|
||||||
print(f"[服务端响应] {json.dumps(response, ensure_ascii=False)}")
|
print(f"[服务端响应] {json.dumps(response, ensure_ascii=False)}")
|
||||||
yield response
|
yield response
|
||||||
@ -607,11 +606,12 @@ class MidjourneyService:
|
|||||||
response = {
|
response = {
|
||||||
"status": "success",
|
"status": "success",
|
||||||
"success_count": success_count,
|
"success_count": success_count,
|
||||||
"error_count": error_count
|
"error_count": error_count,
|
||||||
|
"images": result.get("images", []) # 添加images字段
|
||||||
}
|
}
|
||||||
|
|
||||||
# 如果需要分割图片
|
# 如果需要分割图片
|
||||||
if config.get("split_image", False) and result.get("images"):
|
if config.get("split_image", True) and result.get("images"):
|
||||||
try:
|
try:
|
||||||
orig_image_url = result["images"][0]
|
orig_image_url = result["images"][0]
|
||||||
split_urls = await self.split_image(orig_image_url)
|
split_urls = await self.split_image(orig_image_url)
|
||||||
@ -625,7 +625,7 @@ class MidjourneyService:
|
|||||||
print(f"[服务端响应] {json.dumps(response, ensure_ascii=False)}")
|
print(f"[服务端响应] {json.dumps(response, ensure_ascii=False)}")
|
||||||
yield response
|
yield response
|
||||||
else:
|
else:
|
||||||
# 错误信息保持简单
|
# 错误信息保持统一格式
|
||||||
error_count += 1
|
error_count += 1
|
||||||
response = {
|
response = {
|
||||||
"status": "error",
|
"status": "error",
|
||||||
|
|||||||
@ -233,3 +233,25 @@ def get_new_image_url(image_url: str) -> str:
|
|||||||
raise
|
raise
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise HTTPException(status_code=500, detail=f"图片URL转换异常: {str(e)}")
|
raise HTTPException(status_code=500, detail=f"图片URL转换异常: {str(e)}")
|
||||||
|
|
||||||
|
def sanitize_filename(filename: str) -> str:
|
||||||
|
"""清理文件名,移除非法字符
|
||||||
|
|
||||||
|
Args:
|
||||||
|
filename: 原始文件名
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
str: 清理后的文件名
|
||||||
|
"""
|
||||||
|
# 移除路径分隔符和空字符
|
||||||
|
filename = re.sub(r'[\\/:*?"<>|\x00-\x1f]', '', filename)
|
||||||
|
# 移除首尾空白字符
|
||||||
|
filename = filename.strip()
|
||||||
|
# 如果文件名为空,使用默认名称
|
||||||
|
if not filename:
|
||||||
|
filename = "untitled"
|
||||||
|
# 限制文件名长度
|
||||||
|
if len(filename) > 255:
|
||||||
|
name, ext = os.path.splitext(filename)
|
||||||
|
filename = name[:255-len(ext)] + ext
|
||||||
|
return filename
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user