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-imagegemini-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.completeddata: [DONE] 后结束。

支持字段

  • model:必填,只能是 gpt-image-2
  • prompt:必填,最多 32,000 个 Unicode 字符。
  • n:可选,目前只能是 1
  • qualitymedium(默认)或 high
  • sizeWIDTHxHEIGHT,宽高均为 16 的倍数,最大边 3840 px,宽高比不超过 3:1,总像素 0.66–8.29 MP。
  • response_formaturl(默认)或 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

端点与长请求模式

流式请求

以下示例使用 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 图片模型。