“Nano Banana”是社区对 Google 的Gemini 2.5 Flash Image的昵称(也是内部简写)——一款高质量、低时延的多模态图像生成与编辑模型。本文是一份长篇指南(含代码、模式、部署步骤与 CometAPI 示例),介绍三种可在生产中使用的实用调用方式:(1)OpenAI 兼容的 Chat 接口(文本→图像),(2)Google 官方的 generateContent 文本→图像接口,以及(3)Google 官方的 generateContent 基于 Base64 输入/输出的图像→图像接口。你还将获得逐步的发布/部署建议、环境配置、如何从 CometAPI 获取 API 操作、价格与水印说明,以及获得稳定且成本高效结果的最佳实践。
什么是 Nano Banana(Gemini 2.5 Flash Image)?
Nano Banana 是对 Gemini 2.5 Flash Image 的非正式称呼,它是 Google Gemini 系列中最新的图像模型。它既适用于照片级真实感的图像生成,也适用于精确的图像编辑(局部编辑、多图融合、在多次编辑中保持角色一致性),并可通过 Google 的 Gemini API、Google AI Studio 和 Vertex AI 获取。该模型内置用于溯源的不可见 SynthID 水印。
为何这对开发者重要:Nano Banana 提供了一个高质量的多模态模型,可处理:
- 文本 → 图像(根据文本提示创建新图像)
- 图像 → 图像(编辑/变换提供的照片)
- 多图融合(将多张图片合成为一张复合图)
所有这些都可以通过 Google 官方的generateContent端点(Vertex AI / Gemini API)或经由第三方 API 网关(如 CometAPI、OpenRouter)提供的 OpenAI 兼容端点访问。这意味着你既可以将 Gemini 2.5 Flash Image 集成到现有的 OpenAI 兼容代码库,也可以直接调用 Google 的官方 SDK。
擅长什么
- 目标明确的局部编辑(更改衬衫颜色、移除物体、微调姿势)。
- 在多次重编辑中保持主体/角色的一致性。
- 将多张图像融合为一致的合成图。
- 相比更重的研究型模型,具备更低的时延与更高的性价比(Google 将“Flash”定位为高吞吐选项)。
我应如何设置开发环境以通过 API 调用 Nano Banana?
下面是一份可作为后文三种调用方式通用基线的逐步清单。
先决条件(账户、密钥、配额)
- Google 账户 + Cloud 项目——若计划通过 Google(Gemini API / Vertex AI)直接调用 Gemini,请创建 Google Cloud 项目并启用 Vertex AI / Gemini API。你需要配置结算与适当的角色(例如
Vertex AI Admin或具备推理权限的 Service Account)。 - Gemini API 访问——部分 Gemini 图像模型处于预览/限量可用状态;你可能需要申请访问,或依据账户情况通过 Google AI Studio 或 Vertex AI 使用模型。
- CometAPI(可选网关)——如果你希望使用一个可代理多种模型(包括 Gemini)的厂商无关 API,请在 CometAPI 注册获取 API Key 并查看其模型列表(提供 Gemini 2.5 Flash 变体与 OpenAI 兼容端点)。CometAPI 可简化开发,让你在不改动应用代码的情况下切换提供商。
本地工具链
- 语言运行时:建议 Node.js 18+、Python 3.10+。
- HTTP 客户端:JS 侧
fetch/axios;Python 侧requests/httpx(或官方 SDK)。 - 图像辅助:Python 用
Pillow,Node 用sharp,用于调整尺寸、格式转换与 Base64 编解码。 - 安全:将密钥存储在环境变量或机密保管库(HashiCorp Vault、AWS Secrets Manager、Google Secret Manager),切勿提交 API Key。
安装 Google/兼容 SDK(可选)
Google 提供 SDK 与 openai 库的兼容垫片——你可以通过修改少量配置(base URL + API Key),用 OpenAI 客户端库调用 Gemini,但若要获得完整的多模态特性,建议使用原生的 Gemini/Google 客户端。若使用 CometAPI 或 OpenAI 兼容网关,使用 OpenAI 客户端可加速开发,示例:
Official Google route (Python):
python -m venv venv && source venv/bin/activate
pip install --upgrade pip
pip install google-genai # official Google GenAI SDK
pip install Pillow requests jq # for local image handling in examples
CometAPI / OpenAI-compatible client (Python):
pip install openai requests
我该如何在三种 Nano Banana 调用方式之间做选择?
选择调用方式取决于你的架构、时延/成本要求,以及你是否希望依赖 Google 官方端点或第三方 OpenAI 兼容网关。三种常见模式如下:
1) OpenAI 兼容的 Chat 接口(文本→图像)
当你已有 OpenAI 风格的代码或 SDK,且希望以最少改动切换模型时使用此方式。许多网关(CometAPI、OpenRouter)在 OpenAI 兼容的 REST 表面之下暴露 Gemini 模型,因此你现有的 chat 或 completions 调用只需更换 base_url 与模型名即可。这通常是你不希望管理 Google Cloud 鉴权时最快的生产化路径。
2) Gemini 官方 generateContent —— 文本→图像
如果你需要官方、完全受支持的 SDK,以及访问最新特性(更细粒度的生成参数、流式传输、大型资产的 File API),并且希望使用 Google Cloud 的计费/监控,请使用 Google 的 generateContent(通过 genai 客户端或 Vertex AI)。当你需要生产支持与企业级控制时推荐此方式。
3) Gemini 官方 generateContent —— 图像→图像(Base64 输入/输出)
当你需要以内联(Base64)形式提交二进制图像,或希望实现图像编辑/图像到图像的流水线时使用此方式。Google 的 generateContent 支持内联(base64)图像,以及用于更大或可复用资产的 File API。生成/编辑的图像通常以 Base64 字符串返回,需在客户端解码并保存。该方式可提供最细致的多模态控制。
如何通过 OpenAI 兼容的 Chat 接口(文本→图像)调用 Nano Banana?
OpenAI 兼容的 chat 端点接受一系列 {role, content} 消息;你在 user 消息中描述想要的图像,网关(CometAPI 或 OpenAI 兼容垫片)会将其转换为对底层 Gemini 模型的调用。如果你的应用已经使用聊天流程,或希望在一次交互中组合文本生成与图像生成,这将非常方便。
步骤
1.在 CometAPI 注册并获取 API Key:在 CometAPI 注册、创建项目并复制你的 API Key。CometAPI 在统一的 base_url 背后暴露多个模型。()
-
安装 OpenAI 兼容客户端:Python:
pip install openai,或使用许多网关采用的新式openai/OpenAISDK 封装。 -
将 SDK 指向 CometAPI 并调用 chat completions 端点:
curl https://api.cometapi.com/v1/chat/completions \
-H "Authorization: Bearer $COMET_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2-5-flash-image-preview",
"stream": true,
"messages": [{"role": "user",
"content": "Generate a cute kitten sitting on a cloud, in a cartoon style"}]
}'
注意:
-
必须将 stream 设为 true;响应会以流式返回。
-
响应结构由 CometAPI 做了 OpenAI 兼容封装。
-
响应包含 Base64 图像;根据需要在客户端解码并保存:
如何使用 Gemini 官方的 generateContent 文本→图像接口调用 Nano Banana?
Google 提供了 Gemini Developer API(Gemini API),并通过 Vertex AI 暴露 Gemini 模型。要以受支持的方式以编程化访问 Gemini 2.5 Flash Image(Nano Banana),官方的 generateContent 方法是用于纯文本或多模态生成的规范入口。请使用 Google 的 GenAI SDK(Python:google-genai)或直接调用 REST 端点。此方式可直接访问模型参数与模态,是调用 Google 端点进行高级功能(精确编辑、多图融合)时的推荐方案。
1.Use Google’s GenAI SDK (Python: google-genai)
发布/调用步骤(概览):
- 从 Google AI Studio 获取 API Key,或设置 Vertex AI 的服务账户(取决于平台)。
- 安装 SDK(
pip install --upgrade google-genai)并进行鉴权(API Key 或 Google Application Default Credentials)。 - 选择模型:
gemini-2.5-flash-image或文档中显示的预览标识(具体标识取决于 GA/预览状态)。 - 调用
client.models.generate_content(...),使用纯文本提示(文本→图像)。 - 解码返回图像(如以 Base64 返回)并保存/存储。
Python(官方客户端)示例——文本→图像:
from google import genai
from base64 import b64decode, b64encode
client = genai.Client(api_key="YOUR_GEMINI_KEY")
prompt = {
"content": "A hyperrealistic photo of a vintage motorcycle parked under neon lights at midnight",
"mime_type": "text/plain"
}
# request generateContent for image output
result = client.generate_content(
model="gemini-2-5-flash-image-preview",
prompt=prompt,
response_modalities=,
image_format="PNG",
)
# handle binary or base64 in response (depends on API mode)
(注意:请查看官方客户端 API 以确认确切参数名称——以上示例遵循 Google 文档中的模式。)
2. 通过 REST 端点调用 Nano Banan
EST endpoint(文本→图像示例):https://api.CometAPI.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent。
鉴权选项:在请求头中提供 x-goog-api-key: $CometAPI_API_KEY。(在 CometAPI 创建密钥。)
以下示例提交文本提示并保存返回的 base64 图像:
curl -s -X POST \
"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [
{ "text": "A photorealistic nano banana dish plated in a stylish restaurant, cinematic lighting, 3:2 aspect ratio" }
]
}]
}' \
| jq -r '.candidates.content.parts[] | select(.inline_data) | .inline_data.data' \
| base64 --decode > gemini-image.png
说明:图像二进制会以 base64 形式返回在
candidates.content.parts.inline_data.data中。上面的示例使用jq提取内联数据并进行解码。官方文档也展示了同样的流程。
如何使用 Gemini 官方的 generateContent 图像→图像接口(Base64 输入/输出)调用 Nano Banana?
何时应使用图像→图像(base64 输入/输出)?
当你需要:
- 编辑现有照片(修补、风格迁移、对象替换)。
- 将多张源图合成为一张作品。
- 在多次编辑中保留主体身份(这是 Nano Banana 的强项)。
Gemini 的 generateContent 支持通过 Base64 的内联图像数据(或文件 URI)输入,并以 Base64 字符串返回生成/编辑结果。文档对如何提供带有 mime_type 和 data 的 inline_data 有明确示例。
发布/调用步骤(图像→图像)
- 准备输入图像:读取文件字节并进行 Base64 编码,或通过 SDK 帮助方法传递原始字节。
- 构造
contents数组,其中一项为内联图像(包含mimeType与data),随后部分为文本编辑指令。 - 使用官方 SDK 或 REST 调用
generateContent。 - 接收响应:API 会以 Base64 字符串返回生成/编辑后的图像。解码并本地保存。
示例——Python(使用 GenAI SDK 的内联字节进行图像→图像)
# pip install google-genai
from google import genai
from google.genai import types
import base64
client = genai.Client(api_key="YOUR_GOOGLE_API_KEY")
# Read local image
with open("input_photo.jpg", "rb") as f:
img_bytes = f.read()
# Using SDK helper to attach bytes as a part
response = client.models.generate_content(
model="gemini-2.5-flash-image-preview",
contents=[
types.Part.from_bytes(
data=img_bytes,
mime_type="image/jpeg"
),
"Make a high-quality edit: change the subject's jacket color to teal, keep natural lighting and preserve the person's facial features."
],
)
# The returned image will typically be in response.candidates[].content.parts with base64-encoded data
# Decode and save (pseudo-access shown; check SDK response structure)
b64_out = response.candidates.content.parts.data # example path
with open("edited.jpg","wb") as out:
out.write(base64.b64decode(b64_out))
Python 示例:通过 rest point 使用 Base64 的图像→图像
import base64, json, requests
API_URL = "https://api.gemini.googleapis.com/v1/generateContent"
API_KEY = "YOUR_GEMINI_KEY"
# read and base64-encode image
with open("input.jpg","rb") as f:
b64 = base64.b64encode(f.read()).decode("utf-8")
payload = {
"model": "gemini-2-5-flash-image-preview",
"input": [
{"mime_type": "image/jpeg", "bytes_base64": b64},
{"mime_type": "text/plain", "text": "Remove the lamppost and make the sky golden at sunset."}
],
"response_modalities":
}
resp = requests.post(API_URL, headers={"Authorization":f"Bearer {API_KEY}", "Content-Type":"application/json"}, json=payload)
resp.raise_for_status()
data = resp.json()
# data.candidates... may contain image base64 — decode and save
out_b64 = data
with open("edited.png","wb") as out:
out.write(base64.b64decode(out_b64))
如果你希望通过 CometAPI 的 rest port 访问:
curl
--location
--request POST "https://api.CometAPI.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent" ^
--header "Authorization: sk-" ^
--header "User-Agent: Apifox/1.0.0 (https://apifox.com)" ^
--header "Content-Type: application/json" ^
--header "Accept: */*" ^
--header "Host: api.CometAPI.com" ^
--header "Connection: keep-alive" ^
--data-raw "{ \"contents\": } ], \"generationConfig\": { \"responseModalities\": }}"
对于内联:读取图像并进行 base64 编码。若需重复使用或文件大于 20MB,请通过 File API 上传,并在
generateContent中引用文件句柄。适合需要输入图像与文本编辑指令、追求精确编辑的工作流。
使用 Nano Banana 的最佳技巧
提示工程与控制
- 明确具体:包含所需的纵横比、风格参考(如允许,使用艺术家名)、镜头、光照与构图。例如:“Photorealistic, 3:2, shallow depth-of-field, golden hour, Nikon 50mm lens.”
- 迭代式编辑:相较一次性的大范围修改,更偏向于以多次的小范围局部编辑——这有助于保留主体一致性。Nano Banana 的强项在于迭代编辑。
图像处理规范
- 预处理输入:规范化色彩空间,如需隐私可移除嵌入的 EXIF,根据需要将分辨率控制在合理范围以节省开销。
- 后处理输出:在人脸检测后,用轻量滤镜(Pillow / sharp)清理小瑕疵再返回用户。
安全、合规与内容政策
- 实施自动化内容安全检查(视觉审核模型或黑名单检查),在存储/提供图像前先行过滤。
- 若上传包含人物的图像,遵守适用的隐私法律(GDPR/CCPA),并获得必要授权。
- 遵守模型使用政策与版权规则,涉及受版权保护的角色或现有作品时要特别注意。
结语
Nano Banana(Gemini 2.5 Flash Image)代表了实用、高保真度的多模态图像生成与编辑进展:它为多步编辑提供一致性,并具备更丰富的多模态推理能力。Nano Banana(Gemini 2.5 Flash Image)在图像生成/编辑方面意义重大——兼具高一致性与多种集成方式(如 CometAPI 等 OpenAI 兼容网关以及 Google 的 generateContent API)。为加速落地,像 CometAPI 这样的网关可让你复用 OpenAI 风格的代码。请始终对响应进行合理性检查,遵守内容政策与溯源特性(SynthID),并在迭代过程中监控成本。
快速开始
CometAPI 是一个统一的 API 平台,将来自头部提供商的 500 多个 AI 模型(如 OpenAI 的 GPT 系列、Google 的 Gemini、Anthropic 的 Claude、Midjourney、Suno 等)聚合到一个对开发者友好的接口之下。通过提供一致的鉴权、请求格式与响应处理,CometAPI 大幅简化了将 AI 能力集成到你的应用中的过程。无论你在构建聊天机器人、图像生成器、音乐创作工具,还是数据驱动的分析管道,CometAPI 都能帮助你更快迭代、控制成本并保持供应商无关性,同时紧跟 AI 生态的最新突破。
开发者可通过 CometAPI 访问 Gemini 2.5 Flash Image(Nano Banana 在 CometAPI 列表中的 gemini-2.5-flash-image-preview/gemini-2.5-flash-image 风格条目)。最新模型版本以文章发布时的目录为准。开始之前,请先在 Playground 中探索模型能力,并查阅 API guide 获取详细说明。访问前,请确保已登录 CometAPI 并获得 API Key。CometAPI 提供远低于官方价格的方案,便于你集成使用。
