Claude Opus 5.5 已在 SeedRouter 上线
SeedRouter Docs

Nano Banana 2 Lite(Gemini 3.1 Flash Lite Image)

Nano Banana 2 Lite API 调用文档:Google 延迟最低的图像模型,使用 generateContent 请求体,通过一个异步端点生成与编辑 1K 图像。

View Markdown

Nano Banana 2 Lite 是 Google 的 Gemini 3.1 Flash Lite Image 模型,是该系列中低延迟、低成本的成员。它以 1K 出图。发送 Google 的 generateContent 请求体并附上 model 字段,保存返回的任务 ID,然后查询该任务以获取生成完成的图像。参考图以 fileData URL 的形式放在 contents 中。

模型 ID

模型 ID渠道计费方式
gemini-3.1-flash-lite-image-officialOfficial输入、文本/思考输出和图像输出分别按 token 费率计费

Nano Banana 2 Lite 只提供按 token 计费。当前价格见模型页。

快速示例

curl https://api.seedrouter.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-lite-image-official",
    "contents": [{"parts": [{"text": "A ceramic teapot on a linen tablecloth, soft window light"}]}],
    "generationConfig": {
      "responseModalities": ["IMAGE"],
      "imageConfig": {"aspectRatio": "16:9", "imageSize": "1K"}
    }
  }'

端点

POST https://api.seedrouter.ai/v1/images/generations
请求头值
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

请求体就是 Google 的 generateContent 请求,只多了一个 model 字段,因为本端点的路径中不包含模型名。响应返回的是任务 ID,而不是生成完成的图像。请把 API Key 保存在服务端代码中。不支持直接调用 /v1beta/models/...:generateContent,请使用本端点。

参数

名称类型必填默认值说明
modelstring是—上面的模型 ID。
contentsContent[]是—1–32 轮。每轮包含 parts 和可选的 role(user 或 model);最后一轮必须是 user。
contents[].parts[].textstring——文本 part。至少需要一个文本 part。
contents[].parts[].fileDataobject否—{"mimeType": "...", "fileUri": "https://..."};图像、视频或 PDF 引用。总共最多 14 个。
systemInstructionobject否—{"parts": [{"text": "..."}]}。
safetySettingsobject[]否—{"category", "threshold"} 组合;见下文。
generationConfig.responseModalitiesenum[]否文本和图像["IMAGE"] 表示只返回图像,或 ["TEXT", "IMAGE"]。
generationConfig.imageConfig.aspectRatioenum否输入图像的比例,否则为 1:11:1、1:4、4:1、1:8、8:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9、21:9。
generationConfig.imageConfig.imageSizeenum否1K只能为 1K。
generationConfig.candidateCountinteger否1只能为 1。一次请求返回一张图像。
generationConfig.temperaturenumber否模型默认值0–2。
generationConfig.topPnumber否模型默认值0–1。
generationConfig.topKinteger否模型默认值1 或以上。
generationConfig.seedinteger否—32 位整数。
generationConfig.maxOutputTokensinteger否模型默认值1–4,096。
generationConfig.stopSequencesstring[]否—最多 5 个。
generationConfig.mediaResolutionenum否模型默认值MEDIA_RESOLUTION_LOW、MEDIA_RESOLUTION_MEDIUM、MEDIA_RESOLUTION_HIGH。决定输入媒体占用多少 token。
generationConfig.thinkingConfig.includeThoughtsboolean否false以 output.thoughts 返回模型的思考摘要。
generationConfig.thinkingConfig.thinkingLevelenum否MINIMALMINIMAL 或 HIGH。

安全类别:HARM_CATEGORY_HARASSMENT、HARM_CATEGORY_HATE_SPEECH、HARM_CATEGORY_SEXUALLY_EXPLICIT、HARM_CATEGORY_DANGEROUS_CONTENT。阈值:BLOCK_NONE、BLOCK_ONLY_HIGH、BLOCK_MEDIUM_AND_ABOVE、BLOCK_LOW_AND_ABOVE、OFF。

未知字段会被拒绝。暂不支持:Google Search grounding(tools)和缓存内容。不接受 inlineData,请以 fileData URL 传入媒体。

输出尺寸

imageSize1:1 输出图像 token
1K1024×10241,120

其他宽高比的 token 数相同。

模式

没有单独的模式参数,也没有单独的编辑端点。

操作参数
文生图一个文本 part
编辑或合成文本 part + 一个或多个 fileData part
多轮编辑之前的 user 与 model 轮次,再加一个新的 user 轮次(见下方说明)

要继续一段对话,请按顺序用上一个任务的 output.parts 重建 model 轮次:文本 part 写成 {"text": ..., "thoughtSignature": ...},图像 part 写成 {"fileData": {"mimeType": "image/<output_format>", "fileUri": <data[image].url>}, "thoughtSignature": ...}。每个 thoughtSignature 都要原样保留:它是我们为你保存的签名的 URL(一张 4K 图像的签名有好几 MB),我们会在请求到达模型之前把它还原。只接受你自己任务结果中的签名。

用参考图编辑

curl https://api.seedrouter.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-lite-image-official",
    "contents": [{
      "role": "user",
      "parts": [
        {"text": "Turn this photo into a watercolor painting. Keep the composition."},
        {"fileData": {"mimeType": "image/jpeg", "fileUri": "https://example.com/photo.jpg"}}
      ]
    }]
  }'

请把示例 URL 替换成你自己的、可访问的图像。

媒体输入

本 API 只接受 URL 引用。不接受 base64 inlineData、data: URL 和 multipart 上传。Playground 会先把所选文件上传到存储,再提交其 URL。

引用必须是公开可访问的 HTTP(S) URL,单个文件小于 50 MB,总计不超过 100 MB:图像(image/png、image/jpeg、image/webp、image/heic、image/heif)、视频(video/mp4、video/mpeg、video/mov、video/avi、video/x-flv、video/mpg、video/webm、video/wmv、video/3gpp)或 PDF 文档(application/pdf)。mimeType 必须与文件一致。URL 在处理过程中才会被拉取;图像无法访问会导致任务失败,失败的任务不计费。

计费维度

当前费率请查看模型定价部分。gemini-3.1-flash-lite-image-official 按用量计费:输入 token(文本和参考图)、文本与思考输出 token、图像输出 token,各按各自的费率。图像输出是主要因素;每张图都是 1K。

最终扣费请在账号的用量记录中查看。失败的任务不计费。

输出结构

提交后返回一个任务引用:

{
  "id": "task_...",
  "model": "gemini-3.1-flash-lite-image-official",
  "status": "processing",
  "created_at": 1790310979
}

轮询任务

curl https://api.seedrouter.ai/v1/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

每隔几秒轮询一次,直到 status 变为 completed 或 failed。轮询过程中出现网络超时,并不意味着生成失败:请保留任务 ID 并继续查询。不要为了查看进度而再创建一个任务。

完整轮询示例

请在上面的 Python 提交示例之后运行这段代码。

import time

deadline = time.monotonic() + 600
while time.monotonic() < deadline:
    result = requests.get(
        f"https://api.seedrouter.ai/v1/tasks/{task_id}",
        headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
        timeout=30,
    )
    result.raise_for_status()
    task = result.json()
    if task["status"] == "completed":
        for image in task["output"]["data"]:
            print(image["url"])
        break
    if task["status"] == "failed":
        raise RuntimeError(task["error"]["message"])
    time.sleep(3)
else:
    raise TimeoutError(f"Still waiting. Resume polling task {task_id}.")

已完成的任务

{
  "id": "task_...",
  "model": "gemini-3.1-flash-lite-image-official",
  "status": "completed",
  "created_at": 1790310979,
  "finished_at": 1790311001,
  "output": {
    "created": 1790310999,
    "data": [{"url": "https://static.seedrouter.ai/media/tasks/task_example/0.jpg"}],
    "output_format": "jpeg",
    "usage": {
      "input_tokens": 27,
      "output_tokens": 1518,
      "total_tokens": 1545,
      "output_tokens_details": {"image_tokens": 1120, "text_tokens": 398, "reasoning_tokens": 0}
    }
  }
}
字段含义
id请保留该 ID 用于后续查询。
statusprocessing、completed 或 failed。
created_at、finished_at以秒为单位的 Unix 时间戳。
output.data[].url生成的图像 URL。
output.text当 responseModalities 包含 TEXT 时,模型随图像返回的文本。不含思考内容。
output.thoughts当 includeThoughts 为 true 时,模型的思考摘要。模型在思考过程中绘制的中间图像不会交付。
output.output_format实际图像格式。
output.parts按顺序排列的最终响应 part,用于多轮编辑:{"text", "thoughtSignature"} 或 {"image": <index into data>, "thoughtSignature"}。thoughtSignature 是一个 URL,请原样传回。
output.usagetoken 用量。output_tokens 计入文本、思考和图像输出;output_tokens_details.image_tokens 是其中的图像部分。
error任务失败时的结构化错误。

不支持流式输出(streamGenerateContent);结果通过任务交付。

错误

在任务创建之前被拒绝的请求,会返回 HTTP 错误状态码和一个 error 对象。受理之后才失败的任务,在查询时返回 HTTP 200,并带有 status: "failed" 和一个 error 对象。图像被模型的安全过滤器拦截时以 content_policy_violation 失败;响应中没有图像时以 no_output 失败。

错误码、HTTP 状态码和重试建议请参见公共错误目录。

{
  "id": "task_...",
  "status": "failed",
  "error": {
    "code": 60001,
    "message": "The request was rejected by the content policy. Please revise the prompt or input images."
  }
}

如果提交本身超时,请先检查你的任务历史再重新提交:第一次请求有可能已经被受理。

实用建议

  • 用完整的句子描述主体、场景、光线和风格。
  • 做编辑时,既要说明要改什么,也要说明哪些必须保持不变。
  • 需要 2K 或 4K 输出时,请选择 Nano Banana 2 或 Nano Banana Pro。
  • 需要长期保存时,请把返回的图像保存到你自己的存储中。

相关内容