Nano Banana 2.1 工作流
通过 Google Cloud 图片 API 运行 Nano Banana 2.1
本地脚本可以直接向 Google Cloud 发起请求。请把身份验证、模型选择、图片设置和结果处理都写清楚,这样图片响应失败时,不会悄悄被当作一次成功导出。
你将制作什么
这是针对你自己控制的 Google Cloud 项目的直接 SDK 请求和审核清单,不是公开的 LlamaGen API 访问。
Nano Banana 2.1 需要付费的 LlamaGen 方案。生成前请先查看当前积分消耗和导出选项。直接使用 Google Cloud API 的计费是分开的。 方案与积分

首屏图是一个 AI 生成的展示概念,用于在实际场景中呈现成品效果。它不是客户照片、应用截图,也不是单独的模型性能测试。
内容已审核:
查看生成示例
下面的示例是我们记录的生成工作流输出结果。请直接查看实际图片,不要默认模型已经严格执行了每一条指令。

准备你自己的 Google Cloud 访问
Google 当前文档将该平台称为 Gemini 企业 Agent Platform;很多开发者仍会用它早期的名字 Vertex AI 来搜索。本示例基于 @google/genai 1.45.0,这是我们本地生成工作流中安装的版本,并使用 vertexai: true。更新的 SDK 版本可能会重命名选项;请以你已安装版本的文档为准。
请使用已开通计费、启用所需服务且凭据已授权的项目。请将服务账号文件和访问令牌放在源代码、页面内容和图片提示词之外。Cloud API 费用与任何 LlamaGen 方案是分开的。
- 请使用准确的模型 ID gemini-nano-banana-2.1。
- 请使用该模型文档中说明的 global 位置。
- 请按照 Google 针对你环境提供的身份验证和项目设置说明进行操作。
发送此接口支持的设置
对于这个 Cloud 模型,文档中列出的输出尺寸为 1K、2K 和 4K。当前 Cloud 模型页面显示,每个提示词最多可输入 14 张图片,内联图片数据的单文件上限为 7 MB;Cloud Storage 输入有不同的限制。这些都是接口级限制,并不意味着任意组合都适合作为创作简述。
Cloud 文档明确说明,Nano Banana 2.1 不支持 seed、temperature、topP、topK 和 logprobs。不要照搬文本生成示例里的这些设置,也不要把 seed 描述成这个模型的可复现控制项。
- 让提示词和少量相关参考图便于检查。
- 使用与实际输入字节一致的 MIME 类型。
- 把模型、输出设置和参考图哈希一并记录到你的结果中。
检查是否真的返回了图片
在写入输出文件前,先检查响应片段里是否包含内联图片数据。纯文本响应、被过滤的结果或没有图片的响应,都应当作为待检查结果处理,而不是已完成的生成。
不要盲目重试。保存不含敏感信息的请求元数据和响应状态,核对文档中的限制,并查看返回原因。如果要重试原因不明的失败,请先确认服务商当前的计费规则。
- 不要记录凭据或完整的私有输入图片。
- 选择文件扩展名时,请保留返回图片的 MIME 类型。
- 把返回的图片视为仍需人工复核的候选结果。
把关键环节分开看
这些检查项描述的是直接使用 Google Cloud 的路径,并不代表已经获得 API 访问权限,也不能替代 Google 最新的设置文档。
| 请求的一部分 | 使用或检查 | 避免默认认为 |
|---|---|---|
| 身份验证 | 你自己已授权的 Google Cloud 项目和凭据 | LlamaGen 订阅可以直接完成 Cloud API 请求的身份验证 |
| 模型与区域 | global 中的 gemini-nano-banana-2.1 | 相似的模型别名会选中同一个模型 |
| 图片设置 | 支持的宽高比、输出尺寸和参考图格式 | seed 或文本模型采样参数也都受支持 |
| 响应 | 实际图片字节、MIME 类型和可审核的结果 | 每个成功的 HTTP 响应都会包含可直接发布的图片 |
实用工作流
从小请求到可审核文件
先从一个简单的原创图片请求开始。下面的示例沿用了我们本地生成工作流中的直接 SDK 结构;请替换项目环境,并通过你自己已获批准的方式完成身份验证。
可直接改写的起始提示词
创建一位原创插画风的快递员,手提灯笼,行走在雨夜街道上。使用清晰的轮廓和易读的场景。不要添加文字或 logo。
这份简述是可调整的参考配方,不是图中成品的原始请求记录。它不承诺生成结果完全一致,也不保证第一次生成就成功。生成记录会保留原始请求。
试试这个工作流
- 在源文件之外准备好凭据和项目。
- 使用受支持的图片设置发起一个小请求。
- 检查返回的图片片段,用正确的 MIME 类型保存,并审核实际文件。
检查重点
- 真的返回了图片片段吗?
- 保存的文件能正常打开吗?
- 视觉结果是否足够符合简述,可以保留?
直接 Google Cloud SDK 示例
这是使用你自己的项目和凭据发起的 Google Cloud 直接请求,不是公开的 LlamaGen API 接口。不要把私钥粘贴到提示词或公开页面中。
import { GoogleGenAI } from "@google/genai";
import { writeFile } from "node:fs/promises";
// @google/genai 1.45.0, matching the documented local workflow.
// Authenticate outside this file using Google Cloud credentials.
const ai = new GoogleGenAI({
vertexai: true,
project: process.env.GOOGLE_CLOUD_PROJECT,
location: "global",
httpOptions: { apiVersion: "v1" },
});
const response = await ai.models.generateContent({
model: "gemini-nano-banana-2.1",
contents: [{ role: "user", parts: [{
text: "Create an original illustrated courier carrying a lantern in a rainy street. No text or logos.",
}] }],
config: {
responseModalities: ["IMAGE"],
candidateCount: 1,
imageConfig: { aspectRatio: "3:2", imageSize: "2K" },
thinkingConfig: { thinkingLevel: "HIGH" },
},
});
const image = response.candidates?.[0]?.content?.parts?.find(
(part) => part.inlineData?.data,
)?.inlineData;
if (!image?.data) throw new Error("No image returned; inspect the response before retrying.");
const extensions = { "image/png": "png", "image/jpeg": "jpg", "image/webp": "webp" };
const extension = extensions[image.mimeType];
if (!extension) throw new Error("Inspect the returned MIME type before saving.");
await writeFile(`nano-banana-2-1.${extension}`, Buffer.from(image.data, "base64"));开始前先看这些问题
这是公开的 LlamaGen API 吗?
不是。代码使用 Google 的 SDK,通过你自己的项目和凭据直接调用 Google Cloud。LlamaGen 的模型页是另一个独立的产品条目。
可以设置 seed 或 temperature 吗?
当前 Cloud 模型文档说明,Nano Banana 2.1 不支持 seed、temperature、topP、topK 和 logprobs。在添加请求参数前,请先查看具体接口文档。
如果响应里没有图片,是否要立刻重试?
请先检查响应和当前服务方说明。过滤、限制和临时故障都可能导致不同结果。本指南不承诺重试一定成功,也不承诺重试是免费的。
