LlamaGen 标志

Nano Banana 2.1 工作流

通过 Google Cloud 图片 API 运行 Nano Banana 2.1

本地脚本可以直接向 Google Cloud 发起请求。请把身份验证、模型选择、图片设置和结果处理都写清楚,这样图片响应失败时,不会悄悄被当作一次成功导出。

你将制作什么

这是针对你自己控制的 Google Cloud 项目的直接 SDK 请求和审核清单,不是公开的 LlamaGen API 访问。

用 Nano Banana 2.1 创建

Nano Banana 2.1 需要付费的 LlamaGen 方案。生成前请先查看当前积分消耗和导出选项。直接使用 Google Cloud API 的计费是分开的。 方案与积分

一张完成度很高的 AI 视觉作品,呈现在日常创作场景中。
AI 展示概念:一个已完成的视觉作品在使用场景中的呈现。该场景与下方的模型直接输出是分开的。

首屏图是一个 AI 生成的展示概念,用于在实际场景中呈现成品效果。它不是客户照片、应用截图,也不是单独的模型性能测试。

LlamaGen 编辑资源

内容已审核:

查看生成示例

下面的示例是我们记录的生成工作流输出结果。请直接查看实际图片,不要默认模型已经严格执行了每一条指令。

生成工作流中使用的参考图

这些是自有的虚构参考素材。加入这些素材并不意味着输出一定能完全还原身份或产品细节。

本页所述工作流对应的 Nano Banana 2.1 直接图片生成输出。
来自已记录工作流的 Nano Banana 2.1 直接输出。请根据本指南中的检查项查看图片。

准备你自己的 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。

这份简述是可调整的参考配方,不是图中成品的原始请求记录。它不承诺生成结果完全一致,也不保证第一次生成就成功。生成记录会保留原始请求。

试试这个工作流

  1. 在源文件之外准备好凭据和项目。
  2. 使用受支持的图片设置发起一个小请求。
  3. 检查返回的图片片段,用正确的 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。在添加请求参数前,请先查看具体接口文档。

如果响应里没有图片,是否要立刻重试?

请先检查响应和当前服务方说明。过滤、限制和临时故障都可能导致不同结果。本指南不承诺重试一定成功,也不承诺重试是免费的。