GPT Image 2 与 Gemini 图片生成 API
通过 OpenAI 兼容 Images API 使用 GPT Image 2,或通过 Gemini 原生 API 使用 Nano Banana Pro 与 Nano Banana 2。
本页把两套相互独立的图片生成 API 协议放在同一处。它们共用 Modelflare API Key 和 Credits,但请求与响应格式不能混用。
- gpt-image-2 使用 OpenAI 兼容的 /v1/images/generations 与 /v1/images/edits 协议。
- gemini-3-pro-image 与 gemini-3.1-flash-image 使用 Gemini 原生 generateContent 协议。
复制示例前先选择模型系列。不要向 GPT 端点发送 Gemini 字段,也不要向 Gemini 端点发送 GPT Images 字段。
1. GPT Image 2 — OpenAI 兼容 Images API
通过 OpenAI 兼容 Images API 使用 gpt-image-2 生成 PNG,或基于公网 URL、本地上传的参考图进行编辑。每个请求返回一张图片,支持中等或高画质、签名 URL 或 base64 输出,以及可选 SSE。
选择入口和模式
- 可能耗时数分钟的普通同步 JSON 请求使用 https://origin.modelflare.dev/v1。
- 经 Cloudflare 的长请求使用 https://modelflare.dev/v1 并设置 stream=true。最终图片就绪前,Modelflare 会发送仅用于传输保活的 SSE 心跳。
- 不要在请求进行中跨域重定向 POST;提交前先选定 Base URL。
同步请求
curl https://origin.modelflare.dev/v1/images/generations \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "黎明时安静的湖畔木屋,电影感自然光",
"n": 1,
"quality": "medium",
"size": "1024x1024",
"response_format": "url",
"output_format": "png"
}'
URL 响应包含一个一小时后过期的 Modelflare 私有签名链接:
{"created":1710000000,"data":[{"url":"https://modelflare.dev/v1/images/assets/.../content?expires=...&signature=..."}]}
将 response_format 设为 b64_json,可直接获得验证后的 PNG,而不持久化 API 输出对象。
实时模型与价格页面会展示常用尺寸的 medium 与 high 价格点。计费以请求中的实际画质和尺寸为准,不叠加普通路由分组倍率,最终费用会写入用量日志。
编辑参考图
向 POST /v1/images/edits 传入一个或多个公网可访问的 HTTP(S) 图片 URL。images 数组的每一项只能包含一个 image_url:
curl https://origin.modelflare.dev/v1/images/edits \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "把背景改成干净的白色摄影棚",
"images": [
{"image_url": "https://example.cn/input.png"}
],
"size": "2048x2048",
"response_format": "url"
}'
也可以通过 multipart/form-data 上传一个本地 PNG、JPEG 或 WebP 文件:
curl https://origin.modelflare.dev/v1/images/edits \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-F "model=gpt-image-2" \
-F "prompt=把背景改成干净的白色摄影棚" \
-F "image=@/path/to/input.png" \
-F "size=2048x2048" \
-F "response_format=url"
multipart 请求必须且只能包含一个图片文件,总请求体不得超过 20 MiB。参考图 URL 或上传文件会发送给选中的上游服务商;URL 须在上游读取期间保持可访问。Modelflare 不会把任一种参考图输入保存为 API 输出资产。
流式请求
curl -N https://modelflare.dev/v1/images/generations \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"一只白猫在雨中的霓虹街道上奔跑","n":1,"quality":"high","size":"1024x1024","response_format":"url","stream":true}'
SSE 注释只是心跳,不代表模型已经输出。收到 image_generation.completed 和 data: [DONE] 后结束。
支持字段
- model:必填,只能是 gpt-image-2。
- prompt:必填,最多 32,000 个 Unicode 字符。
- n:可选,目前只能是 1。
- quality:medium(默认)或 high。
- size:WIDTHxHEIGHT,宽高均为 16 的倍数,最大边 3840 px,宽高比不超过 3:1,总像素 0.66–8.29 MP。
- response_format:url(默认)或 b64_json。
- output_format:目前只支持 png。
- stream:可选布尔值。
- images:仅 /v1/images/edits 必填;必须是非空数组,每项包含一个公网 HTTP(S) image_url。包含 URL 用户名或密码的地址会被拒绝。
- image:/v1/images/edits 的另一种 multipart 输入;必须且只能上传一个有效的 PNG、JPEG 或 WebP 文件。
图片生成请求仍拒绝参考图。编辑接口接受 JSON URL 参考图或一个 multipart 本地文件;多个上传文件、data/base64 输入、mask、input_fidelity、变体、局部图和未知字段都会被拒绝。上游、校验、下载或存储失败不会伪装成成功图片,预扣 Credits 通过按 Request ID 幂等的退款路径返还。
请使用普通 API Key。绑定特定渠道的 Key 会被拒绝;启用了模型限制的 Key 必须包含 gpt-image-2。
2. Gemini 图片 — Gemini 原生 API
通过 Gemini 原生请求与响应格式使用 Nano Banana Pro 或 Nano Banana 2。这两个模型不使用 /v1/images/generations。
端点与长请求模式
- 同步:POST https://modelflare.dev/v1beta/models/{model}:generateContent。
- 生图推荐:POST https://modelflare.dev/v1beta/models/{model}:streamGenerateContent?alt=sse。
- origin.modelflare.dev 不开放 /v1beta。Gemini 原生请求请使用主域名,长时间生图优先使用流式端点。
流式请求
以下示例使用 Nano Banana 2。把 URL 中的模型替换为 gemini-3-pro-image 即可使用 Nano Banana Pro。
curl -N "https://modelflare.dev/v1beta/models/gemini-3.1-flash-image:streamGenerateContent?alt=sse" \
-H "x-goog-api-key: YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [{"text": "Create a clean blue circle centered on a white background. No text."}]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}
}
}'
响应格式
每个 SSE data: 事件都是 Gemini 原生 JSON。最终图片的 base64 位于 candidates[].content.parts[].inlineData.data,MIME 类型位于 inlineData.mimeType;同一响应也可能包含文本 part。最终 candidate 返回 finishReason=STOP 或连接关闭后结束;这里不会出现 GPT 的 image_generation.completed 事件。
模型、分辨率与预估价格
| 模型 | 分辨率 | 预估每张价格 |
|---|---|---|
| Nano Banana Pro | 1K / 2K | US$0.06720 |
| Nano Banana Pro | 4K | US$0.12000 |
| Nano Banana 2 | 0.5K | US$0.02241 |
| Nano Banana 2 | 1K | US$0.03360 |
| Nano Banana 2 | 2K | US$0.05040 |
| Nano Banana 2 | 4K | US$0.07560 |
imageSize 中的 K 必须大写。以上为单张图片预估价格;最终费用可能随请求内容略有变化,并会记录在用量日志中。
通过 x-goog-api-key 传入普通 Modelflare API Key。Key 必须能够使用 gemini-image 分组;启用模型限制时还必须包含所选 Gemini 图片模型。