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_KEYOPENAI_BASE_URLIMAGE_PROMPTIMAGE_SIZEREFERENCE_IMAGE或REFERENCE_IMAGESIMAGE_STREAMIMAGE_PARTIAL_IMAGESIMAGE_MODERATION
IMAGE_SIZE 可选值:
- 比例值:
1:1、16:9、9:16、4:3、3:4、3:2、2:3、5:4、4:5、2:1、1:2、21:9、9:21 - 像素值:
宽x高格式,只要满足官方约束即可。OpenAI 官方gpt-image-2的常用尺寸示例是1024x1024、1536x1024、1024x1536、2048x2048、2048x1152、3840x2160、2160x3840,以及auto
官方约束:
- 最大边长
<= 3840px - 宽高都必须是
16px的倍数 - 长边 / 短边比值不能超过
3:1 - 总像素数必须在
655,360到8,294,400之间
建议:
IMAGE_REQUEST_STYLE=openai时,比例值会自动映射成兼容像素尺寸。- 需要更稳定的输出尺寸时,优先直接写像素值。
4096x2304、4096x4096这类超过3840px边长上限的尺寸,不属于 OpenAI 官方gpt-image-2的可选值。
Stream 与 Moderation
IMAGE_STREAM=true时,请求里会发送stream=true。IMAGE_PARTIAL_IMAGES=1时,请求里会额外发送partial_images=1,要求先返回 1 张中间图。IMAGE_MODERATION目前只支持auto和low,其他值会在本地校验阶段直接报错。- 如果上游真的返回
text/event-stream,脚本会逐条处理 SSE 事件,并在运行目录里保存:post-response.jsonstream-events.jsonlpartials/*.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
Languages
Python
89.2%
Shell
10.8%