Appearance
Nano Banana 图片生成
nano-banana-2 与 nano-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}:generateContent | Gemini 原生客户端 / generateContent 协议 |
| OpenAI 图片接口(同步) | POST /v1/images/generations | OpenAI 兼容客户端 |
| 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: 前缀),mimeType 为 image/png 等。
json
{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{ "text": "这是生成结果……" },
{
"inlineData": {
"mimeType": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgA..."
}
}
]
}
}
],
"usageMetadata": {
"promptTokenCount": 12,
"candidatesTokenCount": 1400,
"totalTokenCount": 1412
}
}提取图片
遍历 candidates[].content.parts[],取 inlineData 且 mimeType 以 image/ 开头的项,把 data 按 data:{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-2 或 nano-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 模型暂不生效,建议只传 prompt 与 n。
三、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 轮询示例等)见异步生图。