Skip to content

Nano Banana 图片生成

nano-banana-2nano-banana-pro 是 Gemini Nano Banana 系列图片模型,可通过词元 API 直接生成图片。

模型说明
nano-banana-2对应 Gemini Nano Banana 2(上游 gemini-3.1-flash-image-preview
nano-banana-pro对应 Gemini Nano Banana Pro(上游 gemini-3-pro-image-preview

支持的调用方式:

方式接口适合场景
Gemini v1beta 原生POST /v1beta/models/{model}:generateContentGemini 原生客户端 / generateContent 协议
OpenAI 图片接口(同步)POST /v1/images/generationsOpenAI 兼容客户端
OpenAI 图片接口(异步)同上 + Prefer: respond-async长耗时、后台任务

一、Gemini v1beta 原生接口

这是 Gemini 官方原生协议:请求体使用 contents + parts,图片通过 responseModalities: ["TEXT", "IMAGE"] 请求,结果图片以 inlineData(base64)返回。

请求地址

http
POST /v1beta/models/nano-banana-2:generateContent

也可以把模型名换成 nano-banana-pro

curl 示例

bash
curl https://code.ciyuanapi.xyz/v1beta/models/nano-banana-2:generateContent \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [
          { "text": "一只橘猫坐在窗边,柔和自然光,写实摄影风格" }
        ]
      }
    ],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"]
    }
  }'

响应示例

图片以标准 Gemini 格式返回:candidates[].content.parts[] 里的 inlineData 就是图片,data 为纯 base64(无 data: 前缀),mimeTypeimage/png 等。

json
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          { "text": "这是生成结果……" },
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": "iVBORw0KGgoAAAANSUhEUgA..."
            }
          }
        ]
      }
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 12,
    "candidatesTokenCount": 1400,
    "totalTokenCount": 1412
  }
}

提取图片

遍历 candidates[].content.parts[],取 inlineDatamimeTypeimage/ 开头的项,把 datadata:{mimeType};base64,{data} 拼成可直接展示的 data URL,或直接 base64 解码保存。

流式(可选)

Gemini 原生流式使用 :streamGenerateContent

http
POST /v1beta/models/nano-banana-2:streamGenerateContent?alt=sse

请求体与上面相同。图片模型通常建议直接使用非流式 :generateContent

Gemini CLI 等原生客户端

Gemini 兼容 Endpoint 填:

text
https://code.ciyuanapi.xyz/v1beta

模型名填 nano-banana-2nano-banana-pro

二、OpenAI 图片接口(同步)

按 OpenAI 图片生成协议调用,返回 b64_json

bash
curl https://code.ciyuanapi.xyz/v1/images/generations \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-2",
    "prompt": "一只橘猫坐在窗边,柔和自然光,写实摄影风格",
    "n": 1
  }'

响应:

json
{
  "created": 1788390000,
  "data": [
    { "b64_json": "iVBORw0KGgoAAAANSUhEUgA..." }
  ]
}

参数说明

size / quality 对 Nano Banana 模型暂不生效,建议只传 promptn

三、OpenAI 图片接口(异步)

长耗时或希望后台处理时,提交时增加 Prefer: respond-async 请求头,立即返回 202 与任务 ID,之后轮询:

bash
curl https://code.ciyuanapi.xyz/v1/images/generations \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Prefer: respond-async" \
  -d '{
    "model": "nano-banana-2",
    "prompt": "一座漂浮在云海上的未来城市",
    "n": 1
  }'

提交响应示例:

http
HTTP/1.1 202 Accepted
Location: /v1/images/generations/task_xxx
Preference-Applied: respond-async

{ "id": "task_xxx", "object": "image.generation.task", "status": "queued" }

查询任务:

bash
curl https://code.ciyuanapi.xyz/v1/images/generations/task_xxx \
  -H "Authorization: Bearer $API_KEY"

完成后(status: completed)结果图片以 URL 返回,图片保留 6 小时:

json
{
  "id": "task_xxx",
  "object": "image.generation.task",
  "status": "completed",
  "data": [
    { "url": "https://code3.ciyuanapi.xyz/api/async-images/random-name.png" }
  ]
}

更多异步细节(状态机、JavaScript 轮询示例等)见异步生图