Nano Banana 生图
Nano Banana 是 Gemini 的生图模型,使用独立的 Nano Banana 生图线路 Key,走 Gemini 原生接口。
- Base URL:
https://api.laoshirenai.com(Gemini SDK 会自动追加/v1beta/models/...) - 普通请求:
POST /v1beta/models/{model}:generateContent - 流式请求:
POST /v1beta/models/{model}:streamGenerateContent?alt=sse - 鉴权请求头:
x-goog-api-key: YOUR_API_KEY
想用 OpenAI Images API 生图,请看 Images。普通 Gemini 文本调用请看 Gemini。
可用模型和价格
图片按张计费,不按 Token 计费,价格只看尺寸档位。余额需要先充值,请求失败不扣费。
| 模型 | 名称 | 1K | 2K | 4K |
|---|---|---|---|---|
gemini-3-pro-image-preview |
Nano Banana Pro | ¥0.95/张 | ¥0.95/张 | ¥1.50/张 |
gemini-3.1-flash-image |
Nano Banana 2 | ¥0.55/张 | ¥0.65/张 | ¥0.80/张 |
档位怎么算
档位由请求里的 generationConfig.imageConfig.imageSize 决定,可填 "1K"、"2K" 或 "4K"。
每次都请明确填写 imageSize。 不填时按 2K 计费。
画面比例用 imageConfig.aspectRatio 控制,例如 1:1、16:9、9:16、4:3、3:4。比例不影响价格。
1. 创建并检查 Key
打开 API 密钥,选择 Nano Banana 生图线路 创建 Key,然后检查模型权限:
curl https://api.laoshirenai.com/v1beta/models \
-H "x-goog-api-key: YOUR_API_KEY"
返回结果里应能看到上面的模型。这一步只查询模型,不生成图片,不产生费用。
不要使用 OpenAI、Anthropic 或其他 Gemini 分组的 Key。
2. cURL 生成图片
curl "https://api.laoshirenai.com/v1beta/models/gemini-3.1-flash-image:generateContent" \
-H "x-goog-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
--max-time 300 \
-d '{
"contents": [{"parts": [{"text": "一只红色陶瓷杯,浅灰色背景,产品摄影,无文字"}]}],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {"imageSize": "1K", "aspectRatio": "1:1"}
}
}' > response.json
图片在 candidates[0].content.parts 里带 inlineData 的那一项:data 是 Base64 图片,mimeType 是图片格式。
{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{ "inlineData": { "mimeType": "image/png", "data": "iVBORw0KGgoAAAANSUhEUg..." } }
]
},
"finishReason": "STOP"
}
]
}
把 response.json 里的图片存成文件:
import base64
import json
from pathlib import Path
response = json.loads(Path("response.json").read_text())
for part in response["candidates"][0]["content"]["parts"]:
if "inlineData" in part:
ext = part["inlineData"]["mimeType"].split("/")[-1]
Path(f"result.{ext}").write_bytes(base64.b64decode(part["inlineData"]["data"]))
3. Python SDK
安装 Google 官方 google-genai SDK:
python3 -m pip install google-genai
把 base_url 换成老实人AI 的地址即可。timeout 的单位是毫秒,下面设为 300 秒。
from pathlib import Path
from google import genai
from google.genai import types
client = genai.Client(
api_key="YOUR_API_KEY",
http_options={"base_url": "https://api.laoshirenai.com", "timeout": 300_000},
)
response = client.models.generate_content(
model="gemini-3.1-flash-image",
contents="一只红色陶瓷杯,浅灰色背景,产品摄影,无文字",
config=types.GenerateContentConfig(
response_modalities=["IMAGE"],
image_config=types.ImageConfig(image_size="1K", aspect_ratio="1:1"),
),
)
for part in response.candidates[0].content.parts:
if part.inline_data:
ext = part.inline_data.mime_type.split("/")[-1]
Path(f"result.{ext}").write_bytes(part.inline_data.data)
SDK 已经把 Base64 解码成二进制,直接写文件即可,不用再解码。
要用 Nano Banana Pro,把 model 换成 gemini-3-pro-image-preview。
4. 等待时间和流式
- Nano Banana 2 一张图通常 12–30 秒,Nano Banana Pro 通常 17–40 秒。
- 4K 图片可能更久。生成 4K 时建议用流式接口
:streamGenerateContent?alt=sse。 - 客户端总超时请设置为 至少 300 秒。
流式请求示例:
curl -N "https://api.laoshirenai.com/v1beta/models/gemini-3-pro-image-preview:streamGenerateContent?alt=sse" \
-H "x-goog-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
--max-time 300 \
-d '{
"contents": [{"parts": [{"text": "一只红色陶瓷杯,浅灰色背景,产品摄影,无文字"}]}],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {"imageSize": "4K", "aspectRatio": "16:9"}
}
}'
客户端逐条读取 SSE 中的 candidates,直到出现完成原因;图片同样在 parts 里带 inlineData 的那一项。
计费与排查
- 图片按张、按
imageSize档位扣余额;请求失败不扣费。 - 调用后到“使用记录”核对模型、分组、状态和费用。
- 图片生成不是幂等操作。超时或连接中断时,先查使用记录,确认没有成功结果和扣费后再决定是否重试。
常见错误
400:模型 ID、contents或generationConfig参数错误。401:Key 无效、停用或缺失。402:余额或可用额度不足。403:当前 Key 不属于 Nano Banana 生图线路,或没有该模型权限。429:并发或请求频率达到限制。500–504:服务暂时不可用;确认没有成功图片后再决定是否重试。