Skip to main content
本页提供一个开箱即用的 Agent 技能(Skill):出图之前先把提示词过一遍体检,补齐缺失要素、删掉会拉低质量的空泛词,再拿优化后的版本去出图。整套东西就两个文件,零第三方依赖
出图不满意,八成问题出在提示词,而不是模型或通道。这个技能把 出图进阶篇 里讲的「改写层」做成了可以丢进任意编码 Agent 的技能。

这个技能能做什么

出图前诊断

按主体 / 环境 / 光线 / 镜头 / 色调 / 构图六要素逐项判定,给 0-100 分,列出风险项,输出一条可直接复制使用的优化提示词。

出图后复诊

把实际出图连同原提示词一起传进去,模型看图对照,指出提示词里哪一句没有被执行、模型自作主张加了什么,再针对性重写。

按目标模型给建议

指定 -t 之后会追加该系列特有的提醒:参考图上限、蒙版支持情况、分辨率参数叫什么名字。

按题材切换检查重点

人像查肤质与光位,产品图查背景与文字禁令,插画则自动降低写实系检查的权重。

实测:一条口语提示词的完整诊断

输入是用户会随手写的原话,外加它实际出的图:
口语提示词生成的咖啡图:木桌、磨豆机、麻布袋等大量道具,杯身被模型编造了品牌名

实际出图:这是用上面那条口语提示词出的图

诊断输出(节选真实运行结果):
拿这条优化后的提示词原样重出一次,同一个模型(gemini-3-pro-image):
优化提示词重出的咖啡图:中性浅灰背景上一只暖白陶瓷拿铁杯,光线方向明确,投影落向右后方,画面无任何文字,四周留白充足

按诊断给出的优化提示词重出:干净可用的电商主图

道具全部清掉、背景变成可控的中性灰、投影方向明确、没有任何编造的品牌名,留白也够放文案了。模型没变,变的只是提示词。

什么时候该跑诊断

不是每次出图都要审一遍。按需求本身的具体程度决定:
这个技能只改提示词,不负责出图。出图交给 Nano Banana Pro 技能GPT-Image-2 系列技能,两者串起来就是完整的「先审后出」流程。

能用在哪些 Agent

一个 Skill 本质上就是一个文件夹:一份写给 Agent 看的说明(SKILL.md)+ 一个干活的脚本。所以凡是能读取本地文件、执行命令行的编码 Agent 都能用上——比如 Codex、OpenClaw、hermes-agent、Claude Code 等。唯一要求:跑 Agent 的那台机器装了 Python 3 并且能联网(脚本要直连 api.apiyi.com)。本技能只用 Python 标准库,不需要 pip 装任何包

三步装好

① 建目录、贴文件

新建一个技能文件夹,放入下面两个文件(完整内容见后两节):
不需要 pip install 任何东西。

② 同目录写 Key

image-prompt-doctor/.env 里写上你的 API易 API Key(在 api.apiyi.com 控制台创建):
脚本会自动从这个 .env 读取 Key,无需任何额外配置或环境变量
.env 里是你的密钥。如果这个技能要随项目仓库共享,务必把 .env 加进 .gitignore,不要提交到 git

③ 交给 Agent

  • 支持技能自动发现的 Agent(如 Claude Code):把整个 image-prompt-doctor/ 目录放进它的技能目录——个人级 ~/.claude/skills/,或项目级 .claude/skills/(随仓库共享)。
  • 其他 Agent:按它各自的技能/插件约定放置;或者最简单——直接让 Agent「读一下这个文件夹里的 SKILL.md,并照着执行」 即可。
装好后就能用了,跳到 怎么用 看示例。

SKILL.md

新建 image-prompt-doctor/SKILL.md,完整内容如下(description 写清「做什么 + 何时用」,Agent 会据此自动触发):

scripts/prompt_doctor.py

新建 image-prompt-doctor/scripts/prompt_doctor.py,完整内容如下(纯 Python 标准库,无需安装依赖):

怎么换诊断模型

默认用 gpt-5.6-luna——便宜(输入 $0.2 / 输出 $1.2 每百万 tokens)、支持图像输入,复诊模式要看图,正好够用。想换成别的模型有两种方式:
换模型时注意两点:复诊模式必须选支持图像输入的模型(纯文本模型传图会报错),可选清单见 视觉理解;另外脚本用了 response_format: {"type": "json_object"},不支持该参数的模型可能返回带代码围栏的文本(脚本已做剥离兜底,但仍以支持 JSON 模式的模型为准)。

为什么一句话就会自动诊断

很多人好奇:我又没敲命令,怎么说句「帮我画张图」它就先去审提示词了? 原理是这样:Agent 启动时会先读取每个技能 SKILL.md 里的 description(一段很短的元数据,说明「这个技能做什么、什么时候该用」)。当你说出的需求匹配上这段描述的场景(比如「画一张……」「这图为什么不对」「优化下提示词」),Agent 就自动决定调用这个技能,去读完整的 SKILL.md 并运行脚本——整个过程你不用记任何命令。 SKILL.md 里还写明了「需求已经很具体时不必多此一举」,所以它不会对每条提示词都动手。想要百分百可控时,用下面的显性调用

怎么用

自然语言(隐式触发)

装好后直接对 Agent 说话即可:

显性调用(更可控)

  • 支持斜杠命令的 Agent(如 Claude Code):
  • 任意 Agent / 直接命令它跑脚本(最通用):

诊断结果在哪里

  • 这个技能不产出文件,结果直接打印到终端,Agent 会把它转述给你——分数、六要素标记、风险项、优化后的提示词、改了什么、参数建议。
  • 需要把结果接进自己的程序时加 --json,输出是一个结构化对象(score / elements / risks / optimized_prompt / changes / suggested_params),重定向落盘即可:
  • 优化后的提示词需要你确认再用:改写可能顺带改变原意(比如把「咖啡」定成了「拿铁」),SKILL.md 里已经要求 Agent 先问一句再出图。
  • 复诊模式传的图不会被修改或覆盖,只作为只读输入。

成本

一次诊断的开销是几千 tokens 级别,按 gpt-5.6-luna 的标价折算不到一分钱,而一次 high 画质的出图是它的几十倍以上。先诊断再出图,省下的重试费用远超诊断本身。 复诊模式要传图,图片按输入 token 计费,成本略高但仍远低于一次出图。

相关文档