Skip to content

Nano Banana(Gemini 图像模型)

当前在售的 Gemini 图像模型:gemini-3.1-flash-image-preview、gemini-3-pro-image-preview 和 gemini-3.1-flash-lite-image。它们是由 Gemini 渠道提供的图像生成模型,有两条调用路径(每个模型的实际列表请在模型中查看 supported_endpoint_types):

路径端点你发送的请求体
OpenAI 图像格式POST /v1/images/generationsOpenAI 图像 JSON,格式见 OpenAI 图像格式
Gemini 原生POST /v1beta/models/{model}:generateContentGemini 的 contents + generationConfig

客户端已经使用 Gemini 协议(Google GenAI SDK)、需要完整控制 responseModalities 和 imageConfig 时,走原生路径;客户端只支持 OpenAI 图像接口时,走 /v1/images/generations。

请求格式、认证和错误响应体与 OpenAI 图像格式 相同。RouteAPI 会把你的图像请求转换成 Gemini 的 generateContent 调用。

字段类型必填说明
modelstring是Gemini 图像模型 ID,如 gemini-3.1-flash-image-preview
promptstring是作为 user 轮次里的单个文本 part 发送
sizestring否映射为 generationConfig.imageConfig.aspectRatio(见下表)
ninteger否大于 1 时发送为 generationConfig.candidateCount;为 1 或省略时不发送
quality、response_format、style、user、watermark—否该路径不做转换,Gemini 适配器会忽略这些字段

responseModalities 由 RouteAPI 自己填入 ["TEXT", "IMAGE"],通过这个端点时不需要传。安全设置取自平台级的 Gemini 配置。

只有以下精确的 size 值会映射为宽高比:

sizeaspectRatio
256x256、512x512、1024x10241:1
1536x10243:2
1024x15362:3
1024x17929:16
1792x102416:9

已经包含 : 的值会作为宽高比原样传递。其他值(例如 2K 或 auto)完全不发送 imageConfig,由上游默认值决定。该路径不接受像素尺寸——宽高比是唯一的尺寸控制项。

Terminal window
curl https://api.routeapi.ai/v1/images/generations \
-H "Authorization: Bearer $ROUTEAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-preview",
"prompt": "A nano banana wearing sunglasses, studio product shot",
"size": "1536x1024"
}'

响应会被转换成 OpenAI 图像对象;只有内联图像 part 会保留,模型返回的任何文本都会被丢弃。

{
"created": 1740000000,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgAA..."
}
]
}

该路径不会产生 URL——始终读取 data[].b64_json。响应里没有图像 part 时请求以 500 失败;被 Gemini 拦截时以 400 失败,拦截原因会记录在该请求上。

POST /v1beta/models/{model}:generateContent
POST /v1beta/models/{model}:streamGenerateContent?alt=sse

示例:

Terminal window
curl https://api.routeapi.ai/v1beta/models/gemini-3-pro-image-preview:generateContent \
-H "x-goog-api-key: $ROUTEAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{ "role": "user", "parts": [{ "text": "Draw a cat astronaut on the moon" }] }
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": { "aspectRatio": "16:9", "imageSize": "2K" }
}
}'
字段类型必填说明
contentsarray是Gemini 对话内容,至少一项。角色为 user 和 model
generationConfig.responseModalitiesarray of string实际必填必须包含 IMAGE,否则模型只返回文本
generationConfig.imageConfigobject否图像选项,原样传给 Gemini。aspectRatio 如 1:1、3:2、16:9;imageSize 如 1K、2K、4K。可接受的值取决于模型
generationConfig.candidateCountinteger否候选数量;并非所有图像模型都支持
safetySettingsarray否Gemini 安全设置,原样转发
systemInstructionobject否系统指令;也接受 snake_case 的 system_instruction

generationConfig 的字段同时接受 camelCase 和 snake_case 两种写法(例如 responseModalities / response_modalities、imageConfig / image_config),两者都存在时以 snake_case 为准。imageConfig 及其内容不做校验,原样传递,因此不支持的 imageSize 由 Gemini 报错,而不是 RouteAPI。

要编辑或引用图像,在文本旁加一个内联图像 part:

{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Repaint this photo as a watercolor illustration" },
{
"inlineData": {
"mimeType": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
]
}
],
"generationConfig": { "responseModalities": ["TEXT", "IMAGE"] }
}

inlineData 携带 Base64 图像字节,会原样转发给 Gemini。已经上传到 Google 的文件也可以用原生 fileData.fileUri part,它同样属于转发范围。如果客户端使用的是 OpenAI 对话格式,image_url 内容 part 会在服务端下载并转换成内联 part 后再发给 Gemini。

流式由查询参数 ?alt=sse 决定,而不是由 action 名决定:带上它后上游 action 变为 streamGenerateContent,响应是 Gemini 的 server-sent events 流。每个分块都是标准的 candidates[].content.parts 结构。希望图像增量到达时使用;否则 :generateContent 会一次返回完整响应体。

原生路径原样返回 Gemini 的响应结构:

{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{ "text": "Here is the image." },
{
"inlineData": {
"mimeType": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
]
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"promptTokenCount": 12,
"candidatesTokenCount": 1120,
"totalTokenCount": 1132
}
}

图像从 parts[].inlineData 读取,通常会伴随文本 part。Gemini 拦截请求时,promptFeedback.blockReason 会有值,candidates 为空。

Gemini 图像模型按 token 计费:生成的图像计为输出 token,按输出价格收费;prompt 和参考图计为输入 token。当前费率见模型定价与模型详情页。

  • OpenAI 图像格式 — 共用的 /v1/images 请求格式与编辑行为。
  • Seedream — 火山引擎 Seedream 的尺寸与编辑语义。
  • 模型 — 查找图像模型并确认 image-generation 支持。
  • 模型定价 — 按 token 与按张计费。