claude-imagegen 是做什么的?
此技能将代理连接到 Codex 的内置 image_gen 工具。该工具使用用户的 ChatGPT 登录状态,因此无需 OPENAI_API_KEY。
简单类比:代理充当艺术总监。它编写设计说明,将其发送给插画师(Codex),然后在采用结果之前进行检查。插画师工作迅速,但有时会拼错标签或弄反箭头方向。因此,视觉检查是必须的步骤,而非可选环节。
何时使用
- 用户请求使用 imagegen GPT 创建插图、故事场景或配套素材。
- 用户希望图片风格与现有图片保持一致。
对于包含大量精确标签的图表,应首先提供 SVG 或 HTML 方案。Imagegen 最擅长生成场景,而在处理长文本时最容易出错。
如果正在运行的代理 就是 Codex 本身,请直接使用其内置的 image_gen 工具。不要从 Codex 内部调用 codex exec。
前置条件
codex位于 PATH 中并已使用 ChatGPT 账户登录。通过codex login status检查。- 功能
image_generation已启用。通过codex features list | grep image_generation检查。 - 可选:用于 WebP 的
cwebp,以及用于读取图片尺寸的sips(macOS)或 Python Pillow。
如果前置条件未满足,请停止并说明缺少哪些条件。不要静默地切换到付费 API。
在运行之前,向用户告知两件事
- 说明和参考图片会发送到 OpenAI。请勿在未经明确许可的情况下附上机密图片、个人数据或客户材料。
- 每张图片会消耗 ChatGPT 订阅的配额。一张测试图片大约消耗 18,000 个 Token,耗时约 2 分钟。
每个会话只需告知一次,除非参考内容类型发生变化。
流程
- 收集需求。 仅询问不明确的事项:图片用途、宽高比(默认为 3:2 横向)、必须出现的文本、参考风格图片以及保存位置。
- 编写设计说明 (brief) ,使用英语并参考
references/brief-template.md。精确列出允许出现的文本,然后禁止出现其他文本、水印和徽标。 - 运行脚本:
脚本会将保存指令添加到说明中,通过标准输入 (stdin) 发送说明,并复制结果。说明必须通过标准输入传递,因为 Codex 的scripts/gen.sh --out <path/name.png> --brief <brief.txt> [--ref <reference.png>]... [--style-guide <AGENTS.md>] [--no-refine] [--webp 1400]-i选项会吞掉其后的位置参数。使用--dry-run可以查看命令而无需消耗配额。 Codex 的优化 (Refine) (默认开启)。 在绘制前,Codex 会扮演艺术总监:它将说明重写为更强大的提示词,具有一个核心概念、清晰的视觉层次以及外行人能立即理解的视觉隐喻。数字、名称、引文和技术术语必须完全保留。优化后的提示词和图片中的文本列表会保存到<name>.refined.txt文件中。如果需要原样使用说明(例如进行范围狭窄的编辑),请使用--no-refine。 风格指南。 通过--style-guide <file.md>或环境变量CLAUDE_IMAGEGEN_STYLE_GUIDE可以附加语言和教学法规则,例如某个 workspace 的AGENTS.md文件。Codex 仅应用该文件中的语言、句式风格和教学法规则。 - 视觉检查结果。 打开 PNG 文件,然后对照
references/qa-checklist.md中的清单进行检查:每个标签的拼写、箭头方向、无多余文本、宽高比以及风格匹配度。 - 必要时进行修改,最多两轮。选择以下方式之一:
- 编辑说明并重新运行,或者
- 将前一次的结果作为
--ref附加,并附带范围狭窄的编辑指令,例如“保持其他所有内容不变,仅将标签 X 改为 Y。”
- 提交。 报告 PNG 路径、WebP 路径(如有)、像素尺寸以及视觉检查结果。同时说明仍然存在的不足之处。
输出
<name>.png:来自 Codex 的原始图片。<name>.brief.txt:所使用的说明,以便能够重新生成或修改图片。<name>.refined.txt:Codex 优化后的提示词以及图片中出现的文本列表。用于检查拼写和数字。<name>.webp:如果指定了--webp,宽度按指定数值,宽高比保持不变。
Codex 还会在 ~/.codex/generated_images/ 中保存一份原始副本。
需要坦诚说明的限制
- 无法通过参数选择图像模型版本。Codex 自行决定。
- 结果非确定性。相同的说明可能产生不同的图片。
- 图片内的长文本经常拼写错误。请将文本限制在几个短标签内。