feat: 图片改图 MCP 工具 image_edit

- imagegen.edit:POST multipart /v1/images/edits,输入图
  必须是工作区内 plain basename 且存在(上限 20MB),产出
  必须是新文件、绝不覆盖输入;响应解析与 generate 共用
  _save_image_response(url 或 b64_json、下载落盘、格式探测)。
- imagegen_mcp 新增 image_edit 工具;image-workflow 技能
  改图分支从“无专用工具”改为用 image_edit。
- 测试:multipart 体含提示词与原图字节、输入缺失/同名/
  路径逃逸拒绝、MCP 列表含 image_edit;全量相关 16 项过。
实测依据(2026-10-30):中转站图片分组 key 调
gpt-image-2.5-flare edits 返回 200,URL 图为真实 PNG
1024x1024、909K,usage 含输入图 token(1659 image tokens)。
This commit is contained in:
host committed 2026-10-30 04:05:00 +08:00
1 parent 5b03e0a85d
commit e13a95067c
4 files changed
+236 -30

No files matched your search

+9 -5
View File
@@ -37,9 +37,11 @@ description: 查看、裁剪、缩放、格式转换已有图片,或在图片
缩放),绝不能:
- 把网上找来的图、占位图、已有图片说成是刚生成的;
- 编造一个图片路径或图片内容描述。
编辑已有图片(按描述改图)目前没有专用工具:不要
把 `image_generate` 说成改图工具,改图需求先按“生成
一张新图”处理并向用户说明这是新图不是原图修改。
编辑已有图片:用 `image_edit` 工具,参数 `prompt`(改什么)、
`input_filename`(工作区内已有图的文件名)、
`output_filename`(新文件名,必须与输入不同,原图绝不
被覆盖)、`size`。改图产出是新文件,不是原图修改;
同样要用 shell / PIL 重新打开验证后再交给用户。
## 步骤(已有图片处理)
@@ -49,10 +51,12 @@ description: 查看、裁剪、缩放、格式转换已有图片,或在图片
3. 验证产出:重新打开产出图,确认格式、尺寸符合要求,
文件大小不是 0。
## 步骤(生成,仅当 image_generate 工具在位时)
## 步骤(生成 / 改图,仅当对应工具在位时)
1. 把用户描述原样记下来,不要自己加没说的元素。
2. 调 `image_generate`,记录提示词、尺寸、产出路径。
2. 生成调 `image_generate`,改图调 `image_edit`(输入图
必须是工作区内已存在的文件,产出文件名与输入不同),
记录提示词、尺寸、产出路径。
3. 验证产出:用 shell / PIL 重新打开返回路径的图,确认
格式、尺寸符合要求,文件大小不是 0,再交给用户;
失败时贴出工具报错,不要换一张别的图顶替。