上一篇 写完没多久就觉得,每次要生成图都重新写一遍这套调用代码太烦了。索性把整套封装成一个 CLI,扔到 GitHub 上:
一行命令出图:
imagegen "a cute red panda holding a sign that says hello"完事。生成 PNG,打印 token 用量和美元成本。没有 SDK,没有样板代码,不用记模型名,不用处理两种不同的响应格式。
主要卖点
默认不需要 OpenAI 组织认证。
这是最大的痛点。gpt-image-2 直连要做组织认证,认证流程虽然几分钟能过,但很多人(包括我)就是懒得搞。OpenRouter 就没这个问题,拿一个 key 就能用。所以 CLI 默认 provider 设成了 OpenRouter。
一个 flag 切到 OpenAI 直连。
如果你已经认证过组织,OpenAI 直连便宜大约 7 倍:
imagegen "your prompt" --provider openai自带成本日志。
每次调用都会在 stderr 打印 token 用量和实际花费,不用自己算:
--- Usage & Cost --- Input tokens: 1645 ($0.01316) Output tokens: 7064 ($0.21132) TOTAL COST: $0.22448自动处理两种响应格式。
OpenAI 直连图片在 data[0].b64_json,OpenRouter 在 choices[0].message.images[]。CLI 内部都兼容了,调用方不用关心。
Provider / 模型对照
| Provider | Model | 单张成本 | 认证 |
|---|---|---|---|
openrouter(默认) | openai/gpt-5.4-image-2 | ~$0.22 | 仅需 OpenRouter key |
openai | gpt-image-2 | ~$0.05 | 需要组织认证 |
openai | gpt-image-1 | ~$0.03 | 不需要认证 |
如果懒得做认证又嫌 OpenRouter 贵,gpt-image-1 是个不错的折中:
imagegen "your prompt" --provider openai --model gpt-image-1文字渲染会差一点,但价格只有 gpt-image-2 的 1/7。
安装
git clone https://github.com/StevenLi-phoenix/imagegen-cli.gitcd imagegen-clipip install httpxchmod +x image_gen.py
# 加到 PATHln -s "$PWD/image_gen.py" ~/.local/bin/imagegen单文件 image_gen.py,唯一依赖是 httpx。
实测
imagegen "A small cute red panda holding a sign that says 'imagegen works!', \ flat illustration style, white background"输出:
Calling openrouter (model=openai/gpt-5.4-image-2)...HTTP 200 in 145.7sSaved image_or_0.png (282385 bytes)--- Usage & Cost --- Input tokens: 1645 ($0.01316) Output tokens: 7064 ($0.21132) TOTAL COST: $0.22448文字一字不差,“imagegen works!” 完整渲染在牌子上。顺手拿同一个 prompt 跑了一遍 gpt-image-1 直连做对比:
| gpt-image-2 · OpenRouter(默认) | gpt-image-1 · OpenAI 直连 |
|---|---|
![]() | ![]() |
| 154.9s · $0.22 · 512×512 | 17.6s · $0.032 · 1024×1024 |
这次两个模型都把文字渲染正确了,但风格差别明显:v2 偏扁平卡通、纯白底;v1 描边更重、底色微米白,默认还直接给到 1024×1024。单次样本说明不了 v1 文字渲染的长期稳定性(前面那句”差一点”仍是我更多调用下来的总体印象),但价格差 7 倍、速度差 9 倍摆在这,如果对 v2 那种特定风格没执念,gpt-image-1 完全够用。
顺带一提,这篇博客顶上的封面图就是 v2 那次调用生成的,没有任何后期。
还有一个小细节
CLI 会顺手把 raw API response 存成 image_response.json。如果以后想从同一次调用里再提取一次(比如换种方式处理),直接 imagegen 不带 prompt 就能从本地读,不用再付一次钱。算是个免费送的小功能。
后续计划
目前只支持 OpenAI 和 OpenRouter。可能会加:
- Google Gemini 系列(OpenRouter 上有 gemini-3-pro-image)
- 图片编辑 endpoint
- 批量并发
但都看需求。这个 CLI 的初心就是让”调一下 gpt-image-2”这件事变成一行命令。如果有具体场景需要,欢迎 GitHub 提 issue。
仓库:StevenLi-phoenix/imagegen-cli
MIT 协议,随便用。
