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 Enterprise 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 結構;請替換成你的專案環境,並透過你自己的核准設定完成驗證。
可直接調整的起始提示詞
創作一位原創插畫風快遞員,手提燈籠走在雨天街道上。輪廓要清楚,場景要易於辨識。不要加入文字或商標。
這份簡述是一個可調整的範本,不是圖片輸出對應的逐字請求紀錄。它不保證結果完全相同,也不保證第一次就能成功生成。生成紀錄會保留原始請求。
試試這個工作流程
- 請在原始碼檔案之外準備憑證與專案設定。
- 以支援的圖片設定執行一個小型請求。
- 檢查回傳的圖片片段,使用正確的 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。請在新增請求參數前先確認對應 endpoint 的文件。
回應沒有圖片,代表我應該立刻重試嗎?
請先檢查回應內容與目前提供者的指引。過濾條件、限制與暫時性失敗都可能導致不同結果。本指南不保證重試一定成功,也不保證免費。
