跳到主要内容
AI教程

使用 GPT Image Skill 生成与编辑图像

学习安装 GPT Image Skill、通过自然语言提示生成图像、使用本地参考图、正确连续编辑,以及运行受限并行批处理。

使用 GPT Image Skill 生成与编辑图像

GPT Image Skill 的功能

GPT Image Skill 可让 Codex、Claude Code 和兼容的本地智能体通过用户的 ChatGPT 订阅生成或编辑图像。它使用 Codex 内置的 $imagegen,或者在可用时使用宿主原生的 image_gen 工具。它不会调用 OpenAI Images API,也不会创建单独计费的 Images API 请求。

该技能接受自然语言提示词以及可读取的本地 PNG、JPEG 或 WebP 参考图。它会将生成的 PNG 文件保存在当前项目的 generated-images/ 目录下,并返回生成结果的路径和内联 Markdown 预览信息。

GPT Image Skill smoke test

图像生成会消耗 ChatGPT 或 Codex 套餐中包含的用量,并且仍受套餐和工作区限制约束。与类似的非图像交互相比,图像生成可能更快消耗套餐内额度,因此并行批处理应有明确目的并保持较小规模。

主要功能

  • 通过已使用 ChatGPT 身份验证的 Codex 生成图像,而不是使用 API 密钥。
  • 为 Codex 和 Claude Code 安装同一个 gpt-image 技能。
  • 保留直接输入的图像提示词,不擅自添加创意细节。
  • 当用户明确委托多个概念或设计方向时,为其编写彼此不同的提示词。
  • 支持按照确定的附件顺序使用一张或多张参考图。
  • 支持编辑、后续修改、变体、合成、透明背景、精确文字和密集布局草稿。
  • 运行相互独立的图像任务,默认并发数为 2,最大为 4。
  • 仅将文件保存在当前工作区内,并且默认避免覆盖已有图像。
  • 支持 macOS、Linux、原生 Windows 和 WSL2。
  • 阻止使用 API 密钥登录,并从 Codex 子进程中移除相关 API 环境变量。

环境要求

安装该技能之前,请确保环境中具备以下组件:

  • Node.js 22 或更高版本:建议使用当前受支持的 LTS 版本。
  • Git:从 GitHub 克隆项目时需要使用。
  • Codex CLI:除非调用方宿主提供原生 image_gen 工具,否则必须使用 ChatGPT 登录。
  • 符合条件的套餐:ChatGPT 或 Codex 套餐及工作区必须允许生成图像。

不支持 WSL1。使用 WSL2 时,请将 Node.js、Codex、代码仓库和工作项目都放在 Linux 端。请将克隆目录存放在 Linux 主目录下,而不是 /mnt/c 中。

通过本地智能体安装

最简单的设置方式是让 Codex、Claude Code 或其他兼容智能体安装该代码仓库。指示智能体读取 AGENT_INSTALL.md,执行持久化克隆或安全的仅快进更新,创建 Codex 和 Claude Code 链接,启动 ChatGPT 设备授权,然后运行:

bootstrap --target all --yes --json

就绪报告末尾应显示 ok: truestatus: readybest_practice_pass: true。浏览器或设备授权必须由用户亲自完成。该技能不会索要密码、令牌、API 密钥或 ~/.codex/auth.json 的内容。

安装过程不应生成实际图像。安装完成时应提供一份简短的入门指南,其中包含常用宽高比、质量描述语,以及创建图像和使用参考图的请求示例。

手动安装

macOS、Linux 和 WSL2

请使用持久化克隆,因为已安装技能的链接会指向该代码仓库:

REPOSITORY_URL="https://github.com/GENEXIS-AI/gpt-image-skill"
INSTALL_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/gpt-image-skill"

git clone "$REPOSITORY_URL" "$INSTALL_DIR"
cd "$INSTALL_DIR"
node ./gpt-image/scripts/validate_skill.mjs
node ./gpt-image/scripts/gpt_image.mjs bootstrap --target all --yes --json

原生 Windows PowerShell

$RepositoryUrl = "https://github.com/GENEXIS-AI/gpt-image-skill"
$InstallDir = Join-Path $env:LOCALAPPDATA "gpt-image-skill"

git clone $RepositoryUrl $InstallDir
Set-Location $InstallDir
node .\gpt-image\scripts\validate_skill.mjs
node .\gpt-image\scripts\gpt_image.mjs bootstrap --target all --yes --json

在 macOS、Linux 和 WSL2 上,安装过程会创建符号链接。原生 Windows 使用目录联接。已有且不相关的路径不会被替换。

  • Codex 安装位置:~/.agents/skills/gpt-image
  • Claude Code 安装位置:~/.claude/skills/gpt-image
  • Windows Codex 安装位置:$env:USERPROFILE\.agents\skills\gpt-image
  • Windows Claude Code 安装位置:$env:USERPROFILE\.claude\skills\gpt-image

生成第一张图像

安装完成后,可直接从宿主调用该技能。在 Codex 中使用:

$gpt-image 暖白色背景上的钴蓝色玻璃机器人。

在 Claude Code 中使用:

/gpt-image 暖白色背景上的钴蓝色玻璃机器人。

你可以使用自然语言描述画面构图和质量:

$gpt-image 创建一间夕阳下温馨的阅读室,16:9,高质量。

常见请求包括 1:116:99:164:33:4。实用的质量描述语包括 草稿高质量高细节/最终质量。这些属于自然语言请求,而不是固定的 API 尺寸列表,因此确切的像素尺寸可能有所不同。

使用直接运行程序

在代码仓库中,你可以显式调用 Node.js 运行程序:

node ./gpt-image/scripts/gpt_image.mjs generate \
  --prompt "暖白色背景上的钴蓝色玻璃机器人。" \
  --out "generated-images/glass-robot.png"

正常生成时会快速检查 ChatGPT 身份验证状态、创建一张图像、执行最低限度的 PNG 完整性检查,然后返回 PATH=... 以及采用绝对路径的 MARKDOWN=... 值。

根据参考图生成图像

参考图必须是实际存在且可读取的文件。在 Claude Code 中,建议使用 @path 或明确的文件系统路径:

/gpt-image 使用 @references/robot.png 作为角色参考图。画出它骑自行车的场景。

在 Claude 中粘贴或拖入并显示的图像,不会自动传递给嵌套的 Codex 进程。如果 Claude 提供了确切的临时附件路径,智能体可以将该文件复制到 generated-images/inputs/。否则,请将图像保存在项目内并提供其路径。该技能不会猜测应使用 Claude 图像缓存中的哪个文件。

等效的直接命令如下:

node ./gpt-image/scripts/gpt_image.mjs generate \
  --mode generate \
  --prompt "画出这个角色骑自行车的场景。" \
  --reference "/absolute/path/robot.png" \
  --out "generated-images/robot-bicycle.png"

附加多张参考图

按照所需顺序重复使用 --reference。仅当参考图具有明确用途时,才添加与其对应的角色说明:

node ./gpt-image/scripts/gpt_image.mjs generate \
  --prompt "使用图像 1 作为角色参考,使用图像 2 作为自行车设计参考。" \
  --reference "/absolute/path/character.png" \
  --reference-role "角色" \
  --reference "/absolute/path/bicycle.png" \
  --reference-role "自行车设计" \
  --out "generated-images/combined.png"

执行编辑时,编辑目标是图像 1。辅助参考图按命令行中的顺序排列在其后。

编辑和修改图像

使用 --mode edit--edit-target 修改现有图像:

node ./gpt-image/scripts/gpt_image.mjs generate \
  --mode edit \
  --prompt "将自行车车篮替换成一个小木箱。" \
  --edit-target "generated-images/robot-bicycle.png" \
  --out "generated-images/robot-bicycle-crate.png"

每次进行后续修改时,都应编辑最新结果,而不是回到原始图像:

node ./gpt-image/scripts/gpt_image.mjs generate \
  --mode edit \
  --prompt "将木箱改成深绿色。" \
  --edit-target "generated-images/robot-bicycle-crate.png" \
  --out "generated-images/robot-bicycle-green-crate.png"

每次都要重新附加仍有必要的所有辅助参考图。每次桥接调用都是临时的,因此不会自动保留之前的附件。如果编辑原始图像而不是最新输出,之前的修改就会丢失。

并行生成多张图像

生成单张图像时使用 generate。对于两个或更多已准备好的任务,该技能可以使用受限批处理。默认并发数为 2,最大为 4。每个批次仅检查一次身份验证,失败的任务不会自动重试。

批处理模型支持三种常见结构:

  • 共享锚点变体:每个任务读取同一个现有设计,并应用不同风格。
  • 委托式概念:智能体为每个请求的设计方向分别编写完整且具有实质差异的提示词,同时保留共同约束。
  • 重复渲染:如果未要求任何差异,每个任务都会复用完全相同的提示词。

创建一个位于工作区内的清单文件,例如 image-jobs.json

{
  "version": 1,
  "jobs": [
    {
      "id": "watercolor",
      "mode": "variation",
      "prompt": "保持相同设计,并以水彩风格进行渲染。",
      "edit_target": "references/base-design.png",
      "references": ["references/watercolor-style.png"],
      "reference_roles": ["此输出的风格参考"],
      "out": "generated-images/design-watercolor.png"
    },
    {
      "id": "clay",
      "mode": "variation",
      "prompt": "保持相同设计,并以黏土风格进行渲染。",
      "edit_target": "references/base-design.png",
      "references": ["references/clay-style.png"],
      "reference_roles": ["此输出的风格参考"],
      "out": "generated-images/design-clay.png"
    }
  ]
}

使用以下命令运行清单:

node ./gpt-image/scripts/gpt_image.mjs batch \
  --manifest "image-jobs.json" \
  --concurrency 2

多个任务可以安全地读取同一个锚点。每个输出仅附加与其相关的风格参考图。对于互不相关的概念,请省略共同的 edit_target,并为每个任务提供独立提示词及其各自的参考图。

某个批处理任务创建的结果不能在同一批次中作为另一个任务的输入。存在输出到输入依赖关系的工作流应分阶段运行。如果没有共同锚点,请先生成第一个请求的输出,再将返回的路径用于后续变体;该技能不会创建额外的隐藏锚点。

高级使用技巧

保留提示词意图

对于单个直接请求,用户的措辞具有权威性,并会原样转发。如果用户要求多个不同的设计、概念、方向、选项或替代方案,则委托的创意意图同样具有权威性。在这种情况下,智能体会为每个输出编写不同且可直接用于图像生成的提示词,同时保留共同的主体、品牌、文字、参考图、宽高比和其他约束。

任务编号应放在清单 ID 和文件名中,而不是放在图像提示词里。避免添加 这是第二个选项 之类的表述。

选择正确的模式

  • 使用 --mode generate 执行文生图任务。
  • 添加 --reference PATH,以现有文件为参考生成新图像。
  • 使用 --mode edit --edit-target PATH 修改现有图像。
  • 使用 --mode variation --edit-target PATH 创建现有设计的变体。
  • 仅在用户要求透明背景时使用 --background transparent
  • 如果需要将同一构图渲染成不同风格,请在多个变体任务中使用相同的编辑目标。
  • 如果同一形象需要出现在不同场景或布局中,请在多个生成任务中使用同一图像作为参考图。

避免意外覆盖

除非明确指定 --overwrite,否则运行程序不会覆盖现有图像。请为每个结果指定 generated-images/ 下具有描述性的输出路径。

故障排除与设置检查

规划和详细诊断均为可选项,正常生成前无需执行。需要排查设置、身份验证、参考图或输出文件问题时,可使用以下命令:

node ./gpt-image/scripts/gpt_image.mjs doctor --json
node ./gpt-image/scripts/gpt_image.mjs guide
node ./gpt-image/scripts/gpt_image.mjs capabilities --json
node ./gpt-image/scripts/gpt_image.mjs inspect \
  --input "generated-images/combined.png" --json

如需在不创建图像的情况下检查登录状态和路径:

node ./gpt-image/scripts/gpt_image.mjs generate \
  --prompt "测试" \
  --out "generated-images/test.png" \
  --dry-run --json

如需在不登录或生成图像的情况下验证批处理清单及其调度:

node ./gpt-image/scripts/gpt_image.mjs batch \
  --manifest "image-jobs.json" \
  --check-only --json

生成的图像会接受轻量级文件和签名检查,而不是生成 SHA-256 收据。对于安装程序验证等适合使用 SHA-256 的场景,仍可使用该功能:

node ./gpt-image/scripts/gpt_image.mjs verify-installers --json

安全与隐私保护措施

  • 该技能会从 Codex 子进程中移除 OPENAI_API_KEYOPENAI_BASE_URLOPENAI_ORG_IDOPENAI_PROJECT_IDCODEX_ACCESS_TOKEN
  • 除非经过脱敏的诊断信息确认已使用 ChatGPT 完成身份验证,否则系统会阻止图像生成。
  • 该技能不包含任何 OpenAI Images API 端点或 /v1/images 请求。
  • 该技能不会读取身份验证文件。
  • 生成的文件始终保留在当前工作区内。
  • 订阅额度用尽时,运行程序不会回退到 Images API。

更新技能

在 macOS、Linux 或 WSL2 上,对持久化克隆执行仅快进更新,然后重新运行引导程序:

INSTALL_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/gpt-image-skill"
git -C "$INSTALL_DIR" pull --ff-only
node "$INSTALL_DIR/gpt-image/scripts/gpt_image.mjs" \
  bootstrap --target all --yes --json

在原生 Windows PowerShell 上:

$InstallDir = Join-Path $env:LOCALAPPDATA "gpt-image-skill"
git -C $InstallDir pull --ff-only
node "$InstallDir\gpt-image\scripts\gpt_image.mjs" bootstrap --target all --yes --json

总结

GPT Image Skill 提供了一种以工作区为中心的方式,可通过 ChatGPT 身份验证,从 Codex、Claude Code 或其他兼容智能体生成和编辑图像。首先输入直接的自然语言请求,为参考图提供稳定的本地路径,每次修改都使用最新输出,并将受限批处理用于相互独立的概念或共享锚点变体。

如需了解安装约定和更深入的工作流详情,请访问 GPT Image Skill 代码仓库