ByteNoteByteNote
chatgpt-imagegen: 用 ChatGPT 订阅在命令行生成图片

字节笔记本

2026年6月11日

chatgpt-imagegen: 用 ChatGPT 订阅在命令行生成图片

API中转
¥120

chatgpt-imagegen 是一个只有 300 行 Python 的命令行工具,能直接调用 ChatGPT 订阅的图片生成能力,不需要 OPENAI_API_KEY,也不需要启动任何服务。

项目简介

chatgpt-imagegen 由开发者 leeguooooo(郭立)开源,是一个零依赖的 Python CLI 工具。它复用了 Codex CLI 内部使用的 image_generation 工具通道,让已订阅 ChatGPT Plus / Pro / Team 的用户可以直接在命令行和 AI agent 中生成图片。

项目在 GitHub 上已获得 27 stars,纯 Python 实现,不依赖任何第三方库。

核心特性

  • 零 API Key: 利用 ChatGPT 订阅自带的生图能力,不需要单独申请 API Key
  • 零依赖: 纯 Python 标准库实现,不需要 pip install
  • 支持多种尺寸: auto、1024x1024、1024x1536、1536x1024,甚至可以尝试更大尺寸
  • 多格式输出: 支持 png、jpeg、webp 三种格式
  • SSE 流式进度: 实时显示生成进度(排队中、生成中、接收图片),不会干等
  • OAuth 自动刷新: token 过期时自动续期,存回 ~/.codex/auth.json
  • AI Agent Skill: 可作为 Claude Code、Codex Agent、Cursor 等 agent 的技能安装使用

工作原理

OpenAI 的图片生成有两条路径:一条是付费 API(/v1/images/generations),需要 API Key 按次计费;另一条是 ChatGPT 订阅自带的生图功能,通过 chatgpt.com/backend-api/codex/responses 端点作为 Responses API 工具调用。

Codex CLI 内置的 image_gen 能力走的就是订阅路径。chatgpt-imagegen 做的事情很简单:读取 ~codex/auth.json 里的 OAuth token,调用同一个后端端点,把返回的 SSE 流中的 base64 图片数据解码保存。

python
# 核心流程简化
# 1. 读取 OAuth token
token = read_auth_json()["access_token"]

# 2. POST 到 codex/responses 端点
response = requests.post(
    "https://chatgpt.com/backend-api/codex/responses",
    headers={"Authorization": f"Bearer {token}"},
    json={
        "model": "gpt-5.5",
        "tools": [{"type": "image_generation"}],
        "input": [{"role": "user", "content": [{"type": "input_text", "text": prompt}]}]
    }
)

# 3. 解析 SSE 流,提取 base64 图片数据
for event in response.iter_sse():
    if event.type == "response.output_item.done":
        image_data = base64.b64decode(event.item["result"])
        save_image(image_data)

安装方式

方式一:作为 AI Agent 技能安装(推荐)

bash
npx skills add leeguooooo/chatgpt-imagegen -g

安装后,任何兼容的 AI agent 都可以直接执行"画一张 xxx"之类的指令。

方式二:独立 CLI 使用

bash
git clone https://github.com/leeguooooo/chatgpt-imagegen
cd chatgpt-imagegen
chmod +x chatgpt-imagegen
./chatgpt-imagegen "a watercolor cat sitting on a windowsill"

也可以安装到系统路径:

bash
sudo install chatgpt-imagegen /usr/local/bin/chatgpt-imagegen

前置条件:Python 3.10+、OpenAI Codex CLI(npm i -g @openai/codex)、ChatGPT 订阅,以及一次性的 codex login

使用示例

基础用法

bash
# 默认输出到 assets/generated/<slug>.png
chatgpt-imagegen "watercolor cat"

# 指定输出路径和尺寸
chatgpt-imagegen "logo for a coffee shop" -o brand/logo.png --size 1024x1024

# 横版 banner
chatgpt-imagegen "moody mountain sunset" -o web/hero.png --size 1536x1024

Agent 管道模式

bash
# --quiet 模式只输出文件路径,适合脚本管道
OUT=$(chatgpt-imagegen "icon" --quiet)
echo "saved to $OUT"

并发生成

实测 Plus 账号支持 4 个并发请求,总耗时约等于最慢的那个,没有 429 限流:

bash
for p in apple sky tree sun; do
  chatgpt-imagegen "a tiny $p icon, flat vector" -o "icons/$p.png" --quiet &
done
wait

命令行参数一览

参数默认值说明
-o, --outassets/generated/<slug>.<ext>输出路径,自动创建父目录
--sizeauto图片尺寸,支持 auto 或 WIDTHxHEIGHT
--formatpng输出格式:png / jpeg / webp
--modelgpt-5.5托管 image_generation 工具的聊天模型
--timeout300总超时时间(秒),大图可能需要 2-3 分钟
--stall-timeout120无数据超时(秒),在总超时前捕获卡死
--quiet只在 stdout 打印保存路径
--no-progress不显示 stderr 进度时间线
-V, --version-打印版本号并退出

限制与注意事项

这个工具的定位很明确:适合个人偶尔在命令行或 agent 中生成图片的场景。有些能力是它做不到的:

  • 无法控制画质等级: 订阅路径的画质由后端自行决定,无法通过参数强制指定 high quality
  • 不支持透明背景: 这需要走 API Key 路径,配合 gpt-image-1.5 模型
  • 不支持图片编辑: /v1/images/edits 端点尚未暴露
  • 不适合生产服务: 用个人订阅为公众提供生图服务违反 OpenAI ToS
  • 不适合大批量: 持续超过 10 张/分钟会触发日限额

如果需要上述能力,官方的 /v1/images/generations API 才是正确选择。项目作者还有个姐妹项目 agent-cli-to-api,把同样的订阅生图能力包装成 OpenAI 兼容的 HTTP API 服务,适合需要网络调用的多客户端场景。

项目链接

分享: