Photo Editing(图片批量处理 · agent 驱动 · 支持 AI 增强)
Overview
隐私优先的 agent 驱动图片处理器。用户上传图片 + 用自然语言描述需求,agent 把需求解析成每张图的参数:
- 压缩 / 转格式 / 改尺寸 / 批量打包 → 由内置 Python 脚本
scripts/process_images.py(Pillow)本地完成,绝不联网。 - 增强 / 去模糊 / 放大变清晰(高清) → 调用 WorkBuddy 的图像生成(image-to-image)能力做 AI 超分,真正补齐细节、提升清晰度(经典滤镜做不到这点)。
最终所有结果打成 zip 交给用户下载。
When to Use
- 用户附带图片并写下文字需求,例如"把这几张压到 50%""第 2 张转 PNG,第 5 张缩到 800 宽""把模糊的那张搞清晰点 / 放大变高清"。
- 最多 10 张、单张 ≤5MB 的批量处理。
- 任意组合:压缩、格式转换(JPEG/PNG/WebP)、改尺寸、AI 增强/去模糊/超分。
Workflow(agent MUST follow,按顺序)
0. 引导(Onboarding)—— 首次或需求不明确时必须做
用户第一次用、或只是上传了图却没说清要做什么时,主动引导,不要默默猜:
- 读
references/guide.md,用简洁中文向用户说明:
- 怎么用:上传图片(≤10 张、单张 ≤5MB)+ 用文字描述需求。
- 支持哪些操作:压缩(质量/目标体积)、转格式、改尺寸、AI 增强(去模糊/超分)。
- 一次多张的两种写法:统一(所有图一样)vs 每图不同(按"第 N 张…"指定)。
- 约束:一次最多 10 张;单张最大 5MB(更大自动跳过并说明)。 - 用
AskUserQuestion把意图结构化(推荐):例如问"这次想做:压缩 / 转格式 / 改尺寸 / AI 增强?""统一处理还是逐张不同?"。 - 给 1–2 个示例,降低上手成本。
需求明确时,可跳过引导直接进入第 1 步。
1. 收集输入
拿到用户上传的图片绝对路径 + 需求文本。没上传图就请用户先上传。
2. 强制约束并告知用户
- 超过 10 张:提示"一次最多上传 10 张",只处理前 10 张并说明被忽略的是哪些。
- 单张 >5MB:跳过该图并说明文件名与原因。
3. 解析为 spec
- 统一("都压到 70%" / "全部转 WebP")→ 每项写相同参数。
- 每图不同("第 1 张 500KB,第 3 张 800 宽,第 5 张转 PNG 并增强")→ 按上传顺序(从 1 开始)或文件名逐一对应。
- 把需求写成 JSON(格式见
scripts/process_images.py文档 /references/examples.md)。每项至少src(绝对路径)。字段:format,quality(1–100, jpeg/webp),scale(0–1,>1 放大),width,height,lock_aspect,target_size_kb,sharpen(0–1 轻量本地锐化), 以及增强意图标记enhance: true。
4. 分派处理
- 普通图(压缩/格式/尺寸):调用脚本
python <skill>/scripts/process_images.py --spec <spec.json> --out-dir <tmp> --zip <tmp>/result.zip
Pillow 缺失先pip install Pillow(推荐用 WorkBuddy 托管 Python venv)。 - 增强图(enhance:true,即"搞清晰/超分/去模糊/高清"):调用 WorkBuddy 图像生成工具的 image-to-image 模式:
- 传入源图 + 提示词,例如:
"4K, ultra-detailed, sharpen, enhance realism, restore fine texture, remove blur and noise, keep original subjects and composition" - 这是真正的 AI 超分:生成模型会补齐 plausible 细节、提升分辨率与清晰度(经典锐化滤镜做不到)。
- 把生成图存到临时目录(如
enhanced_01.png)。 - 若该图同时还需要压缩/转格式/改尺寸,再把 enhanced 文件作为
src喂给process_images.py跑后续;否则直接进最终 zip。
5. 汇报
读取脚本打印的 stdout JSON 报告,向用户汇总:处理了几张、总节省百分比、哪些被 skip 及原因。AI 增强的图单独说明"已用 AI 提升清晰度"。
6. 交付
用 present_files 给出 zip 下载链接。
Capability Reference
| 字段 | 含义 | 说明 |
|---|---|---|
format |
jpeg/png/webp | png 保透明且无损;jpeg 透明处铺白底 |
quality |
1–100 | 仅 jpeg/webp;越大越清晰越大 |
scale |
0–1(>1 放大) | 等比缩放;>1 即放大 |
width/height |
px | 只给一个 + lock_aspect:true 自动算另一个 |
target_size_kb |
KB | 自动二分搜质量达标,不行再缩分辨率 |
sharpen |
0–1 | 轻量本地锐化(离线兜底);真·高清请用 enhance:true(AI) |
enhance |
true | AI 增强/超分:agent 走图像生成 image-to-image,见步骤 4 |
Notes & Limitations
- 隐私:压缩/格式/尺寸 100% 本地;AI 增强走 WorkBuddy 图像生成能力(平台内)。
- AI 增强会"重绘"细节:生成式超分会让画面更清晰、更锐利,但细微纹理可能略有变化——这正是它比滤镜强的缘故;若需像素级保真,请只用
sharpen或明确说"不要改内容"。 - AI 增强输出尺寸取决于图像生成模型;如需固定输出尺寸/格式,增强后再用脚本跑一次。
- PNG +
target_size_kb:PNG 无损,只能靠缩小分辨率达标。 - 依赖:脚本需 Pillow(
pip install Pillow),缺失会快速报错。 - 更多自然语言→spec 示例见
references/examples.md;用户引导话术见references/guide.md。