name: nano-banana-pro description: 使用Google的Nano Banana Pro(Gemini 3 Pro Image)生成图像。适用于通过Gemini API生成AI图像、创建专业视觉内容或构建图像生成功能。触发词包括Nano Banana Pro、Gemini 3 Pro Image、gemini-3-pro-image-preview、Google图像生成。
Nano Banana Pro (Gemini 3 Pro Image)
使用Google的Gemini 3 Pro Image API生成高质量图像。
概述
Nano Banana Pro 是 Gemini 3 Pro Image(gemini-3-pro-image-preview)的市场名称,这是Google基于Gemini 3 Pro构建的最先进的图像生成和编辑模型。
快速开始
获取API密钥
- 前往 Google AI Studio
- 点击“获取API密钥”
- 安全存储为环境变量
基本图像生成(Python)
from google import genai
from google.genai import types
client = genai.Client(api_key="YOUR_GEMINI_API_KEY")
response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents="一个宁静的日本花园,有樱花和锦鲤池",
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE']
)
)
# 处理响应
for part in response.candidates[0].content.parts:
if hasattr(part, 'text'):
print(f"描述: {part.text}")
elif hasattr(part, 'inline_data'):
# 保存图像
image_data = part.inline_data.data # Base64编码
mime_type = part.inline_data.mime_type # image/png
import base64
with open("output.png", "wb") as f:
f.write(base64.b64decode(image_data))
REST API (cURL)
curl -s -X POST \
"https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [{"text": "创建一个关于光合作用的生动信息图"}]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"]
}
}'
TypeScript/JavaScript
const GEMINI_API_KEY = process.env.GEMINI_API_KEY;
async function generateImage(prompt: string) {
const response = await fetch(
'https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent',
{
method: 'POST',
headers: {
'x-goog-api-key': GEMINI_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
contents: [{
role: 'user',
parts: [{ text: prompt }]
}],
generationConfig: {
responseModalities: ['TEXT', 'IMAGE'],
},
}),
}
);
const data = await response.json();
return data;
}
配置选项
图像配置
response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents="咖啡杯的专业产品照片",
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE'],
image_config=types.ImageConfig(
aspect_ratio="16:9", # 选项: 1:1, 3:2, 16:9, 9:16, 21:9
image_size="2K" # 选项: 1K, 2K, 4K
)
)
)
使用Google搜索接地
response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents="创建一个显示今日股票市场趋势的信息图",
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE'],
tools=[{"google_search": {}}] # 启用搜索接地
)
)
多轮对话(迭代编辑)
# 创建聊天会话
chat = client.chats.create(
model="gemini-3-pro-image-preview",
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE'],
tools=[{"google_search": {}}]
)
)
# 初始生成
response1 = chat.send_message(
"创建一个解释光合作用的生动信息图"
)
# 编辑图像
response2 = chat.send_message(
"将此信息图更新为西班牙语。保持所有其他元素不变。"
)
关键能力
1. 优越的文本渲染
response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents="""创建一个专业海报,包含:
- 标题: "2025年年度科技峰会"
- 日期: 2025年3月15-17日
- 地点: 旧金山会议中心
""",
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE']
)
)
2. 角色一致性(最多5个主题)
import base64
def load_image(path: str) -> str:
with open(path, "rb") as f:
return base64.b64encode(f.read()).decode()
character_ref = load_image("character.png")
response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=[
{"text": "生成此人在科技会议上的图像"},
{"inline_data": {"mime_type": "image/png", "data": character_ref}}
],
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE']
)
)
Next.js API路由
// app/api/generate-image/route.ts
import { NextRequest, NextResponse } from 'next/server';
export async function POST(request: NextRequest) {
const { prompt, aspectRatio = '1:1', imageSize = '2K' } = await request.json();
try {
const response = await fetch(
'https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent',
{
method: 'POST',
headers: {
'x-goog-api-key': process.env.GEMINI_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
contents: [{ role: 'user', parts: [{ text: prompt }] }],
generationConfig: {
responseModalities: ['TEXT', 'IMAGE'],
imageConfig: { aspectRatio, imageSize },
},
}),
}
);
const data = await response.json();
const parts = data.candidates?.[0]?.content?.parts || [];
const imagePart = parts.find((p: any) => p.inline_data);
return NextResponse.json({
image: imagePart ? {
data: imagePart.inline_data.data,
mimeType: imagePart.inline_data.mime_type,
url: `data:${imagePart.inline_data.mime_type};base64,${imagePart.inline_data.data}`,
} : null,
});
} catch (error) {
return NextResponse.json({ error: '生成失败' }, { status: 500 });
}
}
模型比较
| 特性 | Nano Banana (2.5 Flash) | Nano Banana Pro (3 Pro Image) |
|---|---|---|
| 模型ID | gemini-2.5-flash-image | gemini-3-pro-image-preview |
| 质量 | 良好 | 最佳 |
| 速度 | 更快 | 更慢 |
| 成本 | 较低 | 较高 |
| 最佳用于 | 预览、高容量 | 生产、专业 |