Nano Banana 2.1 API
Google Nano Banana 2.1——最新的 Nano Banana 圖像生成與編輯模型。據 Google 表示,它相較先前的模型全面提升,在視覺設計與主體一致性上進步明顯,同時提示詞遵循更精準,文字渲染也更乾淨。
兩個端點:google/nano-banana-2.1/text-to-image,以及支援最多 14 張參考圖片的 google/nano-banana-2.1/edit。提供 14 種長寬比(包括 1:4、4:1、1:8 與 8:1)、1K / 2K / 4K 輸出、可選的網頁與圖片搜尋,以及 PNG 或 JPEG 輸出——請求結構與 Nano Banana 2 相同。
/filters:quality(82)/examples/48cc1e621e734eeba0ddda5004aa805d/b94abaf6-4369-4f65-bf93-e4da93382a36-96022c930e6b.webp)
概覽
關於 Nano Banana 2.1 API
Nano Banana 2.1 的功能、它在 Google 模型陣容中的定位,以及團隊選用它的原因。
Nano Banana 2.1 是來自 Google 的圖片生成與編輯模型,可透過 WaveSpeedAI REST API 使用。Google Nano Banana 2.1——最新的 Nano Banana 圖像生成與編輯模型。據 Google 表示,它相較先前的模型全面提升,在視覺設計與主體一致性上進步明顯,同時提示詞遵循更精準,文字渲染也更乾淨。
兩個端點:google/nano-banana-2.1/text-to-image,以及支援最多 14 張參考圖片的 google/nano-banana-2.1/edit。提供 14 種長寬比(包括 1:4、4:1、1:8 與 8:1)、1K / 2K / 4K 輸出、可選的網頁與圖片搜尋,以及 PNG 或 JPEG 輸出——請求結構與 Nano Banana 2 相同。
WaveSpeedAI 上的 Nano Banana 2.1 系列提供 2 個 REST 端點,涵蓋 Image-To-Image, Text-To-Image 等工作流程。每個變體都有各自的定價、參數選項與範例輸出 — 請挑選符合您輸入模態與生產限制的版本,或使用同一組 API 金鑰呼叫多個變體,組合成多步驟的處理流程。
使用您呼叫其他 1,000+ 個 WaveSpeedAI AI 模型時相同的 API 金鑰、帳單帳戶與速率限制額度來執行 Nano Banana 2.1。無需另外設定供應商、無需各家 SDK、無需處理各家不同的速率限制 — 一次整合,涵蓋從文字轉圖片、文字轉影片,到音訊合成、3D 生成、放大與編輯的所有功能。
規格
Nano Banana 2.1 API 功能與上線狀態
開發者在選擇 API 前會查詢的模型專屬資訊:可用性、預期輸出長度、參考素材支援,以及目前可用的替代方案。
端點
2 種版本
文字轉圖片與編輯;編輯最多接受 14 張參考圖片。
解析度
1K / 2K / 4K
三種輸出等級;預設為 1K。
長寬比
14
1:1、3:2、2:3、3:4、4:3、4:5、5:4、9:16、16:9、21:9、1:4、4:1、1:8、8:1。
輸出
PNG / JPEG
每次請求可選;可選用網頁與圖片搜尋輔助。
端點
所有 Nano Banana 2.1 API 端點
WaveSpeedAI 目前提供 2 個 Nano Banana 2.1 端點 — 請選擇符合您工作流程的變體。
/filters:quality(82)/media/images/1791312805430502065_dlG47iBV.webp)
Nano Banana 2.1 Edit
Google Nano Banana 2.1 Edit is the latest Nano Banana image editing model, with gains in visual design, subject consistency and prompt adherence, up to 14 reference images and 1K to 4K output. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
/filters:quality(82)/media/images/1791312803887061677_SluDNW5I.webp)
Nano Banana 2.1 Text To Image
Google Nano Banana 2.1 is the latest Nano Banana image generation model, with gains in visual design, subject consistency and prompt adherence, cleaner text rendering, 1K to 4K output and optional web search. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
範例
看看 Nano Banana 2.1 的實際效果
由 Nano Banana 2.1 API 生成的真實輸出。將滑鼠移到任一影片上即可預覽,點擊可開啟完整尺寸檢視器。
使用方式
如何使用 Nano Banana 2.1 API
從註冊到完成生成,只要四個步驟。完整的 Python、Node.js 與 cURL 範例請見下方的 API 區段。
- 01
取得 API 金鑰
註冊 WaveSpeedAI 帳號,並從控制台複製您的 API 金鑰。新帳號會獲贈免費入門點數 — 足以在開始計費前執行數十次 Playground。
- 02
提交 prediction
將您的輸入以 JSON 格式 POST 到 https://api.wavespeed.ai/api/v3/google/nano-banana-2.1/text-to-image。端點會立即回傳 prediction id — 生成是非同步進行的,因此推論期間您不需要保持連線。
- 03
輪詢完成狀態
GET https://api.wavespeed.ai/api/v3/predictions/{request_id}/result。狀態為 completed 時回傳輸出;狀態為 failed、cancelled、timeout 或 deleted 時停止並回報錯誤;其他狀態則持續輪詢。
- 04
讀取輸出網址
當狀態為 "completed" 時,從 data.outputs[0] 讀取網址。該網址指向 WaveSpeedAI CDN 上您生成的媒體 — 依您呼叫的 Nano Banana 2.1 變體,可能是圖片、影片、音訊或 3D 檔案。
應用情境
您可以用 Nano Banana 2.1 打造什麼
開發者與創作者使用 Nano Banana 2.1 API 的常見工作流程。
重視設計的視覺內容
Google 將視覺設計列為 2.1 最大的提升之一。適合海報、社群媒體圖像、包裝模型,以及構圖與字體排版和主體同樣重要的版面設計。
多次編輯間保持主體一致
主體一致性是另一項核心提升。google/nano-banana-2.1/edit 在你更換場景、服裝或風格時,仍能讓人物、產品與角色保持可辨識,每次呼叫最多支援 14 張參考圖片。
複雜的多要素提示詞
提示詞遵循更精準,代表包含多個主體、位置與風格限制的長指令會被更忠實地執行。把每項要求都寫清楚,而不是依賴後續編輯。
清晰的圖內文字
標籤、招牌與標題的渲染比以往更清晰。為菜單、橫幅與產品標籤生成文字時,把確切文案放在引號中,並說明它的位置。
以最新資訊為依據
設定 enable_web_search,讓模型查詢最新的真實世界資訊——近期的產品、地點或事件;設定 enable_image_search,讓模型在生成前查看真實事物的樣貌。
最高 4K 的極端長寬比
14 種長寬比(包括 1:4、4:1、1:8 與 8:1)涵蓋直式橫幅、寬版頁首與摩天大樓廣告,支援 1K、2K 或 4K 輸出。
技巧
Nano Banana 2.1 提示詞技巧
讓 Nano Banana 2.1 產出更好結果的實用建議 — 整理自在實際生產流程中,圖片模型通用的有效做法。
- 01
把需求完整寫清楚
2.1 能更準確地遵循冗長、多要素的提示詞。在一則提示詞中描述主體、構圖、光線、風格與所有文字,而不是在後續編輯中修補細節。
- 02
引用確切文字
對於招牌、標籤與標題,把原文放在引號中,並說明它應出現的位置(「頂部標題」「右下角價格標籤」)。
- 03
編輯時說明要保留什麼
使用 google/nano-banana-2.1/edit 時,先描述要做的修改,再說明哪些必須保持不變——「把背景換成黃昏的海灘,保留人物、姿勢與光線」。
- 04
依順序指稱參考圖片
傳送多張參考圖片時,把主體放在第一張,其餘依順序指稱(「圖片 2 中的夾克」)。
- 05
以 1K 打草稿,以 2K 或 4K 交付
先以 1K 反覆調整,再以交付解析度重新執行選定的提示詞。只有當提示詞依賴最新的真實世界資訊或真實事物的樣貌時,才開啟網頁或圖片搜尋。
定價
Nano Banana 2.1 API 定價
依輸出計費。最終費用會依您在各變體 Playground 中設定的參數(解析度、時長、輸出數量、參考素材)而調整。
| 端點 | 類型 | 起始價格 |
|---|---|---|
| google/ | image-to-image | $0.05 |
| google/ | text-to-image | $0.05 |
API
呼叫 Nano Banana 2.1 API
請到 wavespeed.ai/accesskey 註冊取得 API 金鑰,然後透過 REST 提交 prediction。Playground 會為任何輸入組合產生可直接貼上的範例。
POSThttps://api.wavespeed.ai/api/v3/google/nano-banana-2.1/text-to-image
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/google/nano-banana-2.1/text-to-image" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d '{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "1:1",
"resolution": "1k",
"enable_web_search": false,
"enable_image_search": false,
"output_format": "png"
}')
TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
-H "Authorization: Bearer $WAVESPEED_API_KEY")
RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
case "$STATUS" in
completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
failed|cancelled|timeout|deleted) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
*) sleep 2 ;;
esac
doneconst submitUrl = "https://api.wavespeed.ai/api/v3/google/nano-banana-2.1/text-to-image";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');
async function requestJson(url, options = {}) {
const response = await fetch(url, options);
if (!response.ok) throw new Error(await response.text());
return response.json();
}
// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "1:1",
"resolution": "1k",
"enable_web_search": false,
"enable_image_search": false,
"output_format": "png"
}),
});
const task = body.data ?? body;
const resultUrl = `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;
// 2. Poll until the prediction finishes.
while (true) {
const resultBody = await requestJson(resultUrl, {
headers: { "Authorization": `Bearer ${apiKey}` },
});
const result = resultBody.data ?? resultBody;
if (result.status === "completed") {
console.log(result.outputs);
break;
}
if (["failed", "cancelled", "timeout", "deleted"].includes(result.status)) throw new Error(JSON.stringify(result));
await new Promise(resolve => setTimeout(resolve, 2000));
}import json
import os
import time
from urllib.request import Request, urlopen
api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "1:1",
"resolution": "1k",
"enable_web_search": False,
"enable_image_search": False,
"output_format": "png"
}
def request_json(url, data=None):
request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
with urlopen(request) as response:
return json.load(response)
# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/google/nano-banana-2.1/text-to-image", json.dumps(payload).encode())
task = body.get("data", body)
result_url = f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"
# 2. Poll until the prediction finishes.
while True:
result_body = request_json(result_url)
result = result_body.get("data", result_body)
status = result.get("status")
if status == "completed":
print(result.get("outputs", []))
break
if status in {"failed", "cancelled", "timeout", "deleted"}:
raise RuntimeError(result)
time.sleep(2)比較
Nano Banana 2.1 與其他選擇比較
在 WaveSpeedAI 上,何時該選擇 Nano Banana 2.1 而非類似的模型。
Nano Banana 2.1 vs Nano Banana 2
參數幾乎相同,切換只需更換模型 ID。2.1 是 Google 較新的模型,視覺設計、主體一致性與提示詞遵循都更好;Nano Banana 2 則額外提供 0.5K 等級與 Fast 版本。
Nano Banana 2.1 vs Nano Banana Pro
Nano Banana Pro 仍是高階等級,提供 Ultra 與 Multi 版本。Nano Banana 2.1 則把 Google 的最新改進帶到更快、成本更低的 Flash 系列。
Nano Banana 2.1 vs GPT Image 2.5
GPT Image 2.5 提供五個品質等級與兩個等級版本。Nano Banana 2.1 則以網頁搜尋輔助、最多 14 張參考圖片,以及最窄可達 1:8 的極端長寬比回應。
常見問題
Nano Banana 2.1 API — 常見問題
定價、授權、整合 — 關於在 WaveSpeedAI 上執行 Nano Banana 2.1 的常見問題。
什麼是 Nano Banana 2.1 API?
Nano Banana 2.1 是 Google 的圖片生成模型,在 WaveSpeedAI 上以 REST API 提供。Google Nano Banana 2.1——最新的 Nano Banana 圖像生成與編輯模型。據 Google 表示,它相較先前的模型全面提升,在視覺設計與主體一致性上進步明顯,同時提示詞遵循更精準,文字渲染也更乾淨。您可以透過程式呼叫,也可以在上方連結的 Playground 試用。
如何呼叫 Nano Banana 2.1 API?
註冊 WaveSpeedAI 帳號,從 /accesskey 複製您的 API 金鑰,然後將您的輸入以 JSON 格式 POST 到 https://api.wavespeed.ai/api/v3/google/nano-banana-2.1/text-to-image。端點會回傳 prediction id。請從約每 2 秒輪詢一次結果端點開始,長時間任務可拉長間隔,並在任何終止狀態時停止。上方提供適用於生產環境的 Python / Node.js / cURL 範例。
Nano Banana 2.1 API 的費用是多少?
Nano Banana 2.1 每次執行 $0.05 起。實際費用會依您設定的參數(解析度、時長、輸出數量、參考素材)而調整。Playground 中「生成」按鈕旁的即時費用預覽會顯示您目前輸入的確切價格。
有哪些 Nano Banana 2.1 變體可用?
WaveSpeedAI 提供 2 個已上線的 Nano Banana 2.1 端點:google/nano-banana-2.1/edit, google/nano-banana-2.1/text-to-image。每個變體都有各自的 Playground 頁面與定價。
Nano Banana 2.1 的輸出可以商用嗎?
商業使用權依 Google 的模型授權而定。多數 Google 模型允許商用輸出;請參閱各模型 Playground 頁面中的授權摘要,以及 WaveSpeedAI 的服務條款了解平台層級的條件。
為什麼要在 WaveSpeedAI 上使用 Nano Banana 2.1,而不是直接使用?
一組 API 金鑰、一個帳單帳戶,即可使用 Nano Banana 2.1 以及來自其他供應商的 1,000+ 個 AI 模型。無需設定各家 SDK、無需處理各自獨立的速率限制、無需為每個供應商重寫整合程式碼。價格通常與 Google 的直接 API 相當或更低。
提供者
關於 Google
Nano Banana 2.1 背後的團隊,以及 Google 在 WaveSpeedAI 上的完整模型陣容。
Google 的 AI 研究主要在 Google DeepMind 與 Google Research 進行。其圖像與影片模型,包括 Imagen、Veo,以及 Nano Banana(Gemini 3 Image)等 Gemini 系列多模態模型,與整個 Gemini 產品線共用架構與訓練基礎設施。輸出以準確的文字渲染、廣泛的風格涵蓋與商用等級授權見長。
在 WaveSpeedAI 上開始使用 Nano Banana 2.1 打造應用
註冊即贈免費入門點數。一組 API 金鑰,涵蓋來自 Google 與所有其他供應商的 1,000+ 個 AI 模型。
/filters:quality(82)/examples/c8d18eb9a94844e7ad929e6f2329e1c9/1aeb9d76-f6ad-467f-afa6-ad09693e5911-65bcec8e8edd.webp)
/filters:quality(82)/examples/2652743d9a2d40df8488300aa282872a/b3569273-299c-4046-b247-04f2735ee0b7-9f888ceafb9b.webp)
/filters:quality(82)/examples/28b41000bf134255a3840b68bac9d5e9/1a29ca9c-d88d-493f-a386-f0a0ba3fa37b-2a450c14afd4.webp)
/filters:quality(82)/examples/99da63b333b1471187f3edf2a74c16fe/5bc79c97-2253-49e3-a0c0-a49679986dcf-1ea4d9e65faf.webp)