修复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/
|
||||
**/__pycache__/
|
||||
|
||||
|
||||
@ -593,12 +593,11 @@ class MidjourneyService:
|
||||
|
||||
async for result in self.imagine(client, guild_id, channel_id, prompt, seed):
|
||||
if result.get("status") == "progress":
|
||||
# 进度信息保持简单
|
||||
# 进度信息只包含必要字段
|
||||
response = {
|
||||
"status": "progress",
|
||||
"progress": result.get("progress", 0),
|
||||
"success_count": success_count,
|
||||
"error_count": error_count
|
||||
"seed": seed # 添加seed字段
|
||||
}
|
||||
print(f"[服务端响应] {json.dumps(response, ensure_ascii=False)}")
|
||||
yield response
|
||||
@ -607,11 +606,12 @@ class MidjourneyService:
|
||||
response = {
|
||||
"status": "success",
|
||||
"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:
|
||||
orig_image_url = result["images"][0]
|
||||
split_urls = await self.split_image(orig_image_url)
|
||||
@ -625,7 +625,7 @@ class MidjourneyService:
|
||||
print(f"[服务端响应] {json.dumps(response, ensure_ascii=False)}")
|
||||
yield response
|
||||
else:
|
||||
# 错误信息保持简单
|
||||
# 错误信息保持统一格式
|
||||
error_count += 1
|
||||
response = {
|
||||
"status": "error",
|
||||
|
||||
@ -233,3 +233,25 @@ def get_new_image_url(image_url: str) -> str:
|
||||
raise
|
||||
except Exception as 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