image-generate

这是一个基于 gpt-image-2 的图片生成小项目,支持 OpenAI-compatible / apicodex-compatible 接口。

安装

python3 -m pip install -r requirements.txt

入口

  • gpt_image2_generate.py:单参考图 / 文生图 / 图生图入口
  • gpt_image2_generate_multi.py:多参考图、多输出入口
  • scripts/*.sh:常用启动脚本

快速开始

单参考图:

bash scripts/run_openai_gpt_image2_edit.sh

多参考图、多输出:

bash scripts/run_openai_gpt_image2_multi.sh

这两个 OpenAI 脚本会强制 IMAGE_REQUEST_STYLE=openai,不会沿用 .env 里的 apicodex

配置

复制 .env.example.env,按需填写:

  • OPENAI_API_KEY
  • OPENAI_BASE_URL
  • IMAGE_PROMPT
  • IMAGE_SIZE
  • REFERENCE_IMAGEREFERENCE_IMAGES
  • IMAGE_STREAM
  • IMAGE_PARTIAL_IMAGES
  • IMAGE_MODERATION

IMAGE_SIZE 可选值:

  • 比例值:1:116:99:164:33:43:22:35:44:52:11:221:99:21
  • 像素值:宽x高 格式只要满足官方约束即可。OpenAI 官方 gpt-image-2 的常用尺寸示例是 1024x10241536x10241024x15362048x20482048x11523840x21602160x3840,以及 auto

官方约束:

  • 最大边长 <= 3840px
  • 宽高都必须是 16px 的倍数
  • 长边 / 短边比值不能超过 3:1
  • 总像素数必须在 655,3608,294,400 之间

建议:

  • IMAGE_REQUEST_STYLE=openai 时,比例值会自动映射成兼容像素尺寸。
  • 需要更稳定的输出尺寸时,优先直接写像素值。
  • 4096x23044096x4096 这类超过 3840px 边长上限的尺寸,不属于 OpenAI 官方 gpt-image-2 的可选值。

Stream 与 Moderation

  • IMAGE_STREAM=true 时,请求里会发送 stream=true
  • IMAGE_PARTIAL_IMAGES=1 时,请求里会额外发送 partial_images=1,要求先返回 1 张中间图。
  • IMAGE_MODERATION 目前只支持 autolow,其他值会在本地校验阶段直接报错。
  • 如果上游真的返回 text/event-stream,脚本会逐条处理 SSE 事件,并在运行目录里保存:
    • post-response.json
    • stream-events.jsonl
    • partials/*.png
  • 如果上游没有返回 EventStream,脚本会自动回退到原来的 JSON / 轮询处理逻辑。

常用示例:

IMAGE_STREAM=true \
IMAGE_PARTIAL_IMAGES=1 \
IMAGE_MODERATION=low \
bash scripts/run_openai_gpt_image2_edit.sh

详细说明见 docs/usage.md

仓库约定

  • outputs/ 是运行产物目录,默认不纳入版本控制。
  • references/ 是本地参考图目录,默认不纳入版本控制。
Description
No description provided
Readme 99 KiB
Languages
Python 89.2%
Shell 10.8%