Nano Banana APIの使い方:公式ドキュメントと2.1のコード
Nano Banana APIは新規ならgemini-nano-banana-2.1で始めます。1K画像1枚$0.0336で無料枠はなく、Nano Banana 2は非推奨です。
目次

Nano Banana APIの公式ドキュメントは、GoogleのGemini API画像生成ページです。Nano BananaはGeminiのネイティブ画像生成モデル群の呼び名で、Gemini APIでは5つのモデルIDとして提供されています。新しく組み込むなら、Google AI StudioでAPIキーを作り、google-genai(Python)または@google/genai(JavaScript)の2.3.0以上を入れ、gemini-nano-banana-2.1(Nano Banana 2.1)をInteractions APIで呼び出す、という順番です。
2026年10月6日にNano Banana 2.1が一般提供(GA)になり、それまで出発点だったNano Banana 2(gemini-3.1-flash-image)はGemini APIで非推奨になりました。停止日はまだ発表されていません。2.1は1K・2K・4Kに対応し、0.5K(512px)は出せません。Nano Banana 2で動いているコードは、0.5Kを指定していなければ、モデルIDをgemini-nano-banana-2.1に替えるだけでリクエストの形はそのまま使えます。
ほかの注意点は3つです。画像出力には無料枠がなく、課金を有効にしたGoogle Cloudプロジェクトが必要です。-previewの付いた初期のモデルIDはすべて停止しており、そのまま呼び出すとエラーになります。「Nano Banana API ドキュメント」という名前で独自のトークンを発行しているサイトは、Googleの公式APIとは別のサービスです。
以下のモデルID、日付、料金は2026年10月8日時点のGoogle公式ドキュメントに基づきます。Interactions APIとgenerateContentのコード例はGoogle公式ページのサンプルに沿った最小構成で、Googleのキーで実行した結果は含みません。実際に呼び出した記録として載せているのは、2026年10月8日にLaoZhang API経由でgemini-nano-banana-2.1を8回呼び出したテスト(出力サイズ、課金額、所要時間)だけです。
公式のNano Banana APIとは:5つのモデルIDと同名サイトの違い
Googleのドキュメントは「Nano Banana」を、Gemini APIで使える次の5モデルの総称として説明しています。生成した画像にはすべてSynthIDの透かしが入ります。
| 通称 | モデルID | 向いている用途 | 注意点 |
|---|---|---|---|
| Nano Banana 2.1 | gemini-nano-banana-2.1 | 新規開発の出発点。生成、編集、マルチターン修正、複数参照画像 | 2026年10月6日GA。0.5K(512px)は非対応 |
| Nano Banana 2 Lite | gemini-3.1-flash-lite-image | 1Kで足りる大量生成、低遅延が必要な処理 | 1Kのみ。複数の参照画像やマルチターン編集には最適化されていない |
| Nano Banana Pro | gemini-3-pro-image | 画像内の文言を指定どおりに入れたい最終素材、図解、テキストと画像の交互出力 | 1枚の単価は2.1の約2.7〜4倍(1K・2K) |
| Nano Banana 2 | gemini-3.1-flash-image | 0.5Kが必要な処理、移行前の既存システム | Gemini APIで非推奨(停止日は未発表)。Googleは新規プロジェクトに2.1を推奨 |
| Nano Banana | gemini-2.5-flash-image | 既存システムの互換維持のみ | 停止日の記載がGoogleのページ間で食い違っている(移行チェックリスト参照) |
Googleは2.1を、画像生成と会話形式の編集を担う主力モデルと位置づけ、Nano Banana 2を「前世代」としています。2.1の特徴やNano Banana 2との違いはNano Banana 2.1とは?料金とNano Banana 2との違い、実測6回で詳しく扱っています。
同じ「Nano Banana API」という名前でも、独自のAPIキーやトークン、独自のエンドポイントを提供するサードパーティのサイトがあります。そうしたサイトのドキュメントは、そのサービス自身の料金・仕様・利用規約に従うもので、Googleのモデルを使っているとしても、リクエストの形、対応機能、上限はGoogleの公式APIと同じとは限りません。Googleに直接つなぐ場合、エンドポイントはgenerativelanguage.googleapis.com、キーはGoogle AI Studioで作成したものです。
コードを書かずにGeminiアプリで画像を作りたいだけなら、APIは不要です。その場合はGemini画像生成の使い方:アプリ・無料上限・APIの始め方のほうが目的に合います。
用途から公式ドキュメントの節とモデルを決める
公式の画像生成ページは長く、Python、JavaScript、Java、Go、RESTのコードが節ごとに並んでいます。やりたいことが決まっていれば、読むべき節とモデルは次の表で絞れます(節名は英語版の見出しです。日本語版は?hl=jaで開けます)。
| やりたいこと | 公式ドキュメントの節 | まず使うモデル |
|---|---|---|
| テキストから1枚生成する | Image generation (text-to-image) | Nano Banana 2.1 |
| 手元の画像を指示どおりに直す | Image editing (text-and-image-to-image) | Nano Banana 2.1 |
| 生成した画像に何度も修正を重ねる | Multi-turn image editing | Nano Banana 2.1(Liteは不向き) |
| 人物・商品・スタイルを複数の画像から合成する | Use up to 14 reference images | Nano Banana 2.1、スタイル参照が必要ならPro |
| 天気やニュースなど最新情報を反映した図を作る | Grounding with Google Search | Nano Banana 2.1またはPro(Liteは非対応) |
| 2K・4Kや縦長・横長の比率で出力する | Generate images up to 4K resolution / Optional configurations | Nano Banana 2.1。Liteは1Kのみ |
| 大量の画像を安く作る | Generate images in batch | Liteか、Nano Banana 2.1のBatch |
| 文章とイラストを交互に並べた出力 | Interleaved text and images | Pro |
モデルごとの違いは、次の能力表にまとめられます。料金はGoogle有料枠の1枚あたり換算(米ドル)です。
| 項目 | Nano Banana 2 Lite | Nano Banana 2.1 | Nano Banana 2(非推奨) | Nano Banana Pro |
|---|---|---|---|---|
| 出力解像度 | 1Kのみ | 1K、2K、4K | 512px(0.5K)、1K、2K、4K | 1K、2K、4K |
| 参照画像の上限 | 物体14枚(人物・スタイル枠なし) | 物体10枚+人物4枚 | 物体10枚+人物4枚 | 物体6枚+人物5枚+スタイル3枚(合計14枚) |
| Google検索によるグラウンディング | 非対応 | ウェブ検索と画像検索 | ウェブ検索と画像検索 | ウェブ検索 |
| 動画入力 | 対応 | 対応 | 対応 | 非対応 |
| thinkingの量の調整(既定値) | minimal/high(minimal) | minimal/medium/high(medium) | minimal/high(minimal) | 調整なし(常にオン) |
| 1枚あたりの料金 | 1K $0.0336 | 1K $0.0336、2K $0.0504、4K $0.113 | 1K $0.067、2K $0.101、4K $0.151 | 1K・2K $0.134、4K $0.24 |
迷ったら2.1で始めます。1Kの画像出力単価は2.1とLiteが同じ$0.0336なので、Liteを選ぶ理由は速度と、入力・thinkingのトークン単価の安さです(入力は100万トークンあたりLite $0.25、2.1は$1.50)。画像の中の文言を一字一句指定どおりに入れたい場合はProにします。2026年10月8日に同じプロンプトで9課題を1Kで1回ずつ生成した比較では、Proは指定した文言を保ち、2.1は文字を扱う課題のうち3つで文言を変えました(Nano Banana 2.1・Pro・GPT Image 2.5の違い:9課題を1回ずつ実測)。Nano Banana 2を残すのは、0.5Kの出力が必要な場合か、2.1への切り替えを確かめるまでの既存処理です。
モデルIDを差し替えるだけで、リクエストの形は変わりません。4モデルの選び分けはNano Banana 2・Pro・2.1・Liteの違いと選び方:新規は2.1、Proで公式のJSON/YAMLテンプレートやPDF入力を使う方法はNano Banana Pro APIの使い方:公式JSON・YAML設定・PDFからの画像生成で扱っています。
手順1:APIキーを取得して環境変数に入れる
キーはGoogle AI Studioで作成します。AI Studioを初めて使う場合は、利用規約に同意するとGoogle Cloudの既定プロジェクトとAPIキーが自動で作られます。すでにGoogle Cloudを使っている場合は既定プロジェクトは作られないため、ダッシュボードの「Projects」から既存プロジェクトをインポートし、そのプロジェクトでキーを作成します。

キーまわりで2026年に変わった点が2つあります(公式のAPIキー解説)。
- 2026年5月28日以降、AI Studioで新しく作るキーはすべて認可キー(auth key)になりました。auth keyはGoogle Cloudのサービスアカウントに紐づき、既定でGemini APIだけに使えるよう制限されています。
- 制限をかけていない従来型のキー(standard key)からのリクエストは、Gemini APIが拒否します。制限を明示的に設定したstandard keyは引き続き使えます。
キーは必ずGoogle Cloudプロジェクトに属し、課金とクォータはプロジェクト単位で管理されます。画像モデルの出力には無料枠がないため、そのプロジェクトで課金を有効にしておく必要があります。レート制限もキー単位ではなくプロジェクト単位なので、同じプロジェクトにキーを何本作っても上限は増えません。
キーはコードに直接書かず、環境変数に入れます。PythonとJavaScriptのSDKはGEMINI_API_KEYかGOOGLE_API_KEYを自動で読み込み、両方ある場合はGOOGLE_API_KEYが優先されます。
# macOS(zsh)の例。~/.zshrc に追記して source ~/.zshrc で反映
export GEMINI_API_KEY="YOUR_API_KEY"Windowsでは、システムの「環境変数」画面でGEMINI_API_KEYを追加し、新しいターミナルを開きます。
手順2:SDKを入れて最初の画像を生成・保存する
Interactions APIは、Gemini APIの新しい呼び出し方です。公式の画像生成ページはこの形式のコードだけを載せており、Googleは新規開発にこれを勧めています。Interactions APIに対応しているSDKは、Pythonのgoogle-genai、JavaScriptの@google/genaiとも2.3.0以上です。
pip install -U "google-genai>=2.3.0"
npm install @google/genai@latestPythonで1枚生成してファイルに保存する最小のコードです。公式ページのサンプルと同じ形で、モデルはgemini-nano-banana-2.1です。
import base64
from google import genai
client = genai.Client() # GEMINI_API_KEY を環境変数から読む
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input="夜の東京の屋台で、小さなバナナ料理が湯気を立てている写真風の画像",
)
with open("generated_image.png", "wb") as f:
f.write(base64.b64decode(interaction.output_image.data))JavaScript(Node.js)でも構造は同じです。
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
const ai = new GoogleGenAI({}); // GEMINI_API_KEY を環境変数から読む
const interaction = await ai.interactions.create({
model: "gemini-nano-banana-2.1",
input: "夜の東京の屋台で、小さなバナナ料理が湯気を立てている写真風の画像",
});
const image = interaction.output_image;
if (image) {
fs.writeFileSync("generated_image.png", Buffer.from(image.data, "base64"));
}SDKを使わずにHTTPで確かめたい場合は、/v1beta/interactionsにPOSTします。キーはx-goog-api-keyヘッダーで渡します。
curl -s -X POST \
"https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-nano-banana-2.1",
"input": [
{"type": "text", "text": "夜の東京の屋台で、小さなバナナ料理が湯気を立てている写真風の画像"}
]
}' > response.jsonレスポンスの画像は、steps配列のうちtypeがmodel_outputのステップにあるimageブロックに、Base64で入っています。jqがあれば次のように取り出せます。
jq -r '.steps[] | select(.type == "model_output") | .content[] | select(.type == "image") | .data' response.json \
| head -n 1 | base64 --decode > generated_image.pngSDKのoutput_imageは、最後に生成された画像を1枚返す便利なプロパティです。既定では文章と画像の両方が返るので、文章はoutput_textで読めます。
保存するファイルの形式には注意が必要です。LaoZhang API経由のテストでは、出力形式を指定しなかった呼び出しは8回ともJPEGで返りました。拡張子と中身を確実に揃えたい場合は、次の手順3のようにresponse_formatでmime_typeを指定します。
手順3:サイズとアスペクト比を指定する
出力の形式はresponse_formatでまとめて指定します。typeを"image"にすると画像だけが返り、aspect_ratio、image_size、mime_type(image/jpegなど)を同じ場所に書けます。
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input="和紙の質感で描いた、富士山と新幹線の横長イラスト",
response_format={
"type": "image",
"mime_type": "image/jpeg",
"aspect_ratio": "16:9",
"image_size": "2K",
},
)
with open("fuji.jpg", "wb") as f:
f.write(base64.b64decode(interaction.output_image.data))指定でつまずきやすい点は次のとおりです。
image_sizeは大文字のKで書きます("1K"、"2K"、"4K")。"1k"のような小文字は拒否されます。- 指定しなければ1Kです。2Kと4KはGemini 3系の画像モデル(2.1、Nano Banana 2、Pro)で使えます。Liteは1Kしか出力できません。
- 512px(0.5K)は非推奨のNano Banana 2だけの選択肢で、2.1は対応していません。2026年10月8日のLaoZhang API経由のテストでは、2.1に
"512"を送るとエラーにならず1Kの画像が返り、1回分が課金されました(前日の別のテストでは同じ指定がHTTP 400で拒否されています)。2.1では512を指定しないでください。Nano Banana 2で512を使う場合、Interactions APIで渡す値は公式ページ上の表記が「512px (05.K)」と崩れているため、「Generate images up to 4K resolution」の節で確認します。generateContentのimageConfigでは512と記載されています。 - 2.1は1:4、4:1、1:8、8:1の極端な縦長・横長を含む14種類の比率に対応し、Googleはこうした比率の2K・4Kで出ていたタイル状の崩れを2.1で直したとしています。比率を指定しないと、入力画像のサイズに合わせるか1:1になります。
- 文章と画像の両方を受け取りたい場合は、
response_format=[{"type": "text"}, {"type": "image"}]のように配列で渡します。
LaoZhang API経由のテストで2.1が返した実際のピクセル数は、1:1の1Kが1024×1024、4:3の1Kが1200×896、16:9の2Kが2752×1536、16:9の4Kが5504×3072(JPEGで8.6MB)でした。4Kは1枚が大きいので、保存先やアップロード上限も見ておきます。
手順4:手元の画像を編集し、複数の参照画像を使う
画像を編集するときは、inputをリストにして、テキストのブロックと画像のブロック(Base64データとmime_type)を並べます。アップロードする画像の権利を持っていることが前提です。
import base64
from google import genai
client = genai.Client()
with open("product.png", "rb") as f:
image_b64 = base64.b64encode(f.read()).decode("utf-8")
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input=[
{"type": "text", "text": "背景を白いスタジオに変え、商品の形と色はそのまま残してください"},
{"type": "image", "data": image_b64, "mime_type": "image/png"},
],
)
with open("product_edited.png", "wb") as f:
f.write(base64.b64decode(interaction.output_image.data))複数の画像を組み合わせる場合も、画像ブロックを増やすだけです。公式ドキュメントには、5人の写真から集合写真を作る例が載っています。
paths = ["person1.png", "person2.png", "person3.png"]
image_blocks = []
for path in paths:
with open(path, "rb") as f:
image_blocks.append({
"type": "image",
"data": base64.b64encode(f.read()).decode("utf-8"),
"mime_type": "image/png",
})
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input=[{"type": "text", "text": "この3人がオフィスで変顔をしている集合写真"}] + image_blocks,
response_format={"type": "image", "aspect_ratio": "5:4", "image_size": "2K"},
)参照できる枚数はモデルで違います。2.1とNano Banana 2は物体10枚と人物4枚まで、Proは物体6枚・人物5枚・スタイル3枚の合計14枚まで、Liteは物体14枚までで人物やスタイルの枠はありません。旧モデルのgemini-2.5-flash-imageは入力3枚までが最もよく働くとされています。人物の顔を何枚も揃える用途なら、Liteではなく2.1かProを選びます。
手順5:マルチターンで修正を重ねる
Googleは、画像を繰り返し直すにはマルチターン(会話形式)で進めることを勧めています。Interactions APIでは、前回のinteraction.idをprevious_interaction_idに渡すだけで、サーバー側に保存された前回の文脈と画像を引き継げます。
first = client.interactions.create(
model="gemini-nano-banana-2.1",
input="光合成を料理のレシピに見立てた、小学生向けのインフォグラフィック",
)
second = client.interactions.create(
model="gemini-nano-banana-2.1",
input="文字をすべて英語に変えてください。それ以外の要素は変えないこと",
previous_interaction_id=first.id,
response_format={"type": "image", "aspect_ratio": "16:9", "image_size": "2K"},
)
with open("infographic_en.png", "wb") as f:
f.write(base64.b64decode(second.output_image.data))RESTでは、前回のレスポンスのidを環境変数PREVIOUS_INTERACTION_IDに入れておき、previous_interaction_idとして渡します。
curl -s -X POST \
"https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-nano-banana-2.1",
"input": "文字をすべて英語に変えてください。それ以外の要素は変えないこと",
"previous_interaction_id": "'"$PREVIOUS_INTERACTION_ID"'",
"response_format": {"type": "image", "aspect_ratio": "16:9", "image_size": "2K"}
}'この仕組みは、やり取りがサーバーに保存されることが前提です。既定はstore=trueで、保存期間は有料枠で55日、無料枠で1日です。store=falseにすると保存されませんが、その場合はprevious_interaction_idで続きを作れません。Liteはマルチターンの連続編集に最適化されていないため、何度も直す用途では2.1を使います。
グラウンディング、thinking、Batch、交互出力の置き場所
ここから先は、必要になったときに該当の節を読めば足りる機能です。
Google検索によるグラウンディング:tools=[{"type": "google_search"}]を付けると、モデルがGoogle検索で事実を確かめてから画像を作ります。天気図や最新の出来事を扱う図に向いています。Liteは非対応です。2.1とNano Banana 2ではsearch_typesにimage_searchを加えるとGoogle画像検索の結果も参照でき、その場合はレスポンスのsearch_suggestionsを自分のUIに表示する義務があります。2.1とNano Banana 2のグラウンディングは、ウェブ検索で見つけた実在人物の画像は使いません。検索は月5,000リクエストまでGemini 3系全体で無料、それを超えると1,000リクエストあたり$14です。
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input="東京の今後5日間の天気予報を、服装の提案つきのすっきりした図にしてください",
tools=[{"type": "google_search"}],
response_format={"type": "image", "aspect_ratio": "16:9"},
)thinking:Gemini 3系の画像モデルは、複雑な指示に対して考える過程を経てから描きます。APIでこれを無効にすることはできません。途中で最大2枚の試作画像を作りますが、その画像は課金されません。一方、thinkingのトークンは課金対象です。考える量はgeneration_config={"thinking_level": "high"}のように指定します。2.1はminimal、medium、highの3段階で既定はmedium、Nano Banana 2とLiteはminimalとhighの2段階で既定はminimalです。LaoZhang API経由のテストでは、minimalを指定した呼び出しでもthinkingのトークンが毎回記録され(587〜936)、同じプロンプトの2Kでhighはminimalより約10秒長くかかりました(34.8秒と24.7秒、各1回)。
Batch:画像生成の機能はすべてBatch APIでも実行できます。結果が返るまで最大24時間かかる代わりに、レート制限が緩く、単価はおおむね半額です。2.1のBatch単価は1K $0.0168、2K $0.0252、4K $0.0567です。2026年10月8日時点のレート制限ページにはBatchのキュー上限の表に2.1の行がまだなく、載っているのはNano Banana 2、Lite、Proです。
テキストと画像の交互出力:Proは、物語や手順書のように文章とイラストが交互に並ぶ出力を作れます。この場合output_imageは最後の1枚しか返さないため、stepsを順に読みます。
interaction = client.interactions.create(
model="gemini-3-pro-image",
input="モナーク蝶の一生を、挿絵つきの短い物語にしてください",
)
count = 0
for step in interaction.steps:
if step.type == "model_output":
for block in step.content:
if block.type == "text":
print(block.text)
elif block.type == "image":
count += 1
with open(f"story_{count}.png", "wb") as f:
f.write(base64.b64decode(block.data))古いコードが動かないときの移行チェックリスト
2025年から2026年前半に書かれたコードや、Nano Banana 2を前提にしたコードは、次の表で原因と直し方を探せます。日付はGoogleのGemini APIの廃止スケジュールとInteractions APIの破壊的変更ガイドによるものです。
まず確かめたいのは、-previewの付いたモデルIDです。Gemini APIでは、gemini-3.1-flash-image-previewとgemini-3-pro-image-previewが2026年6月25日に、gemini-2.5-flash-image-previewが2026年1月15日に停止しました。廃止スケジュールが示す置き換え先は、順にgemini-nano-banana-2.1、gemini-3-pro-image、gemini-nano-banana-2.1です。コードやComfyUIのノード設定にこれらのIDが残っていると、リクエストは失敗します。

| コードにあるもの | 何が起きたか | 直し方 |
|---|---|---|
gemini-2.0-flash-preview-image-generation | 2025年11月14日に停止 | gemini-nano-banana-2.1に変更 |
gemini-2.5-flash-image-preview | 2026年1月15日に停止 | gemini-nano-banana-2.1に変更 |
gemini-3-pro-image-preview | 2026年6月25日に停止 | gemini-3-pro-imageに変更 |
gemini-3.1-flash-image-preview | 2026年6月25日に停止 | gemini-nano-banana-2.1に変更 |
gemini-3.1-flash-image(Nano Banana 2) | 2026年10月6日にGemini APIで非推奨。停止日は未発表 | gemini-nano-banana-2.1へ。0.5Kを指定している処理は1K以上に変える |
gemini-2.5-flash-image | 廃止スケジュールでは2027年3月15日に停止。料金ページには「2026年10月2日に停止」という警告が残っている | Googleの推奨移行先はgemini-3.1-flash-lite-image。編集や複数参照を使うならgemini-nano-banana-2.1 |
imagen-4.0-generate-001などImagen 4のモデル | 2026年8月17日に停止 | gemini-nano-banana-2.1に移し、呼び出しは手順2の形に書き直す |
2.1にimage_size: "512" | 2.1は0.5K非対応 | "1K"以上を指定する |
interaction.outputs[-1]などoutputsを読むコード | 旧スキーマは2026年6月8日に削除 | output_image/output_textかstepsを読む |
Interactionsのgeneration_config内のimage_config | 新スキーマで廃止 | response_format(type: "image")に移す |
response_mime_type | 新スキーマで廃止 | response_format内のmime_typeに移す |
client.interactionsが存在しないというエラー | SDKが2.3.0未満 | google-genai/@google/genaiを2.3.0以上に更新 |
別名のパッケージ(例:google-generativeai) | Interactions APIの対応SDKではない | google-genaiに置き換える |
| 制限なしのstandard key | Gemini APIが拒否 | AI Studioで新しいキー(auth key)を作るか、既存キーに制限をかける |
image_size: "1k" | 小文字は拒否 | "1K"と大文字で書く |
モデルIDを置き換えたあとは、生成結果を目で確認してください。同じプロンプトでもモデルが変われば構図や文字の出方が変わります。Nano Banana 2から2.1に替える場合は、thinkingの既定値がminimalからmediumに変わるため、所要時間とトークン量も見直します。gemini-2.5-flash-imageは停止日の記載が食い違っており、料金ページの日付(2026年10月2日)はすでに過ぎています。今動いている場合でも、早めに移行を済ませておくのが安全です。
generateContentの既存コードはまだ使えるか
使えます。Googleは「generateContentは引き続き完全にサポートする」としたうえで、新規開発にはInteractions APIを勧めています(移行ガイド)。すでにgenerateContentで動いているシステムなら、モデルIDの更新だけ先に済ませ、Interactions APIへの移行は計画的に進めて問題ありません。
両者の対応は次のとおりです。
| 項目 | Interactions API | generateContent |
|---|---|---|
| エンドポイント | POST /v1beta/interactions | POST /v1beta/models/{model}:generateContent |
| 出力の種類 | response_formatのtype | generationConfig.responseModalities |
| 比率とサイズ | response_formatのaspect_ratio、image_size | generationConfig.imageConfigのaspectRatio、imageSize |
| 画像の取り出し | output_imageまたはsteps | candidates[].content.parts[]のinlineData |
| マルチターン | previous_interaction_idでサーバーが履歴を保持 | 履歴を自分で送り直す |
generateContentで画像だけを受け取るPythonの例です。APIリファレンスのフィールドに沿って書いたもので、Googleのキーで実行した結果は含みません。
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-nano-banana-2.1",
contents="和紙の質感で描いた、富士山と新幹線の横長イラスト",
config=types.GenerateContentConfig(
response_modalities=["IMAGE"],
image_config=types.ImageConfig(aspect_ratio="16:9", image_size="2K"),
),
)
for part in response.candidates[0].content.parts:
if part.inline_data:
with open("fuji.png", "wb") as f:
f.write(part.inline_data.data)generateContentでresponseFormatに比率やサイズを書いている古いサンプルを見かけたら、imageConfigに書き直してください。generateContentで比率とサイズを受け付けるのはimageConfigです。リファレンスのimageSizeには512も載っていますが、2.1では使えません。
料金とレート制限:モデル選びに必要な分だけ
Gemini APIの料金ページでは、画像モデルのどれにも画像出力の無料枠がありません。以下は2026年10月8日時点の有料枠の1枚あたり換算(米ドル)です。
| モデル | 通常 | Batch |
|---|---|---|
| Nano Banana 2.1 | 1K $0.0336、2K $0.0504、4K $0.113 | 1K $0.0168、2K $0.0252、4K $0.0567 |
| Nano Banana 2 Lite | 1K $0.0336 | 1K $0.0168 |
| Nano Banana Pro | 1K・2K $0.134、4K $0.24 | 1K・2K $0.067、4K $0.12 |
| Nano Banana 2(非推奨) | 0.5K $0.045、1K $0.067、2K $0.101、4K $0.151 | 0.5K $0.022、1K $0.034、2K $0.050、4K $0.076 |
| Nano Banana(2.5 Flash Image) | $0.039 | ― |
2.1の4Kは、提供開始直後の10月6〜7日には$0.0756と表示されていましたが、10月8日時点では$0.113です。古い数字を見かけたら料金ページで確かめてください。
見積もりは「1枚の単価×枚数」が基本です。たとえば2Kで1,000枚なら、2.1は$0.0504×1,000=$50.40、Batchなら$25.20、Nano Banana 2は$101、Proは$134です。ほかに入力トークンと、文章・thinkingのトークンがかかります。2.1は100万トークンあたり入力$1.50、文章とthinking $7.50、画像出力$30です。
LaoZhang API経由のテストで記録されたトークン数を2.1の定価に当てはめると、1:1の1K 1枚は、入力42×$1.50+画像1,120×$30+文章とthinking 1,248(394+854)×$7.50を100万で割って約$0.043になりました。画像出力だけの$0.0336より3割ほど高くなる計算です。トークン数はゲートウェイの応答に記録された値で、Google直結の請求額そのものではありません。
無料枠の考え方や経路ごとの比較はNano Banana API 料金:Lite、Nano Banana 2、Pro、無料枠、経路選択、2.1とNano Banana 2の単価差はNano Banana 2 API料金:1枚$0.045〜$0.151、2.1なら1K・2Kが半額で詳しく扱っています。
レート制限はプロジェクト単位で、1日あたりのリクエスト数(RPD)は太平洋時間の0時、日本時間では夏時間中は16時、それ以外は17時にリセットされます。画像モデルには1分あたりの画像数(IPM)の制限もあり、モデルごとの具体的な数値はドキュメントではなくAI Studioのプロジェクト画面に表示されます。課金アカウントをリンクするとTier 1になり、支払い累計$100と3日でTier 2、$1,000と30日でTier 3に上がります。別に10分ごとの支出上限(Tier 1は$10)があり、超えると429 RESOURCE_EXHAUSTEDが返ります(Gemini APIのレート制限ドキュメント)。429の見分け方はGemini画像生成の429レート制限:毎分・日次・支出上限の見分け方、上限の回復の仕組みはNano Banana 2 の制限は1日何回?回復の仕組みにまとめています。
うまくいかないとき・次に読むもの
- 429や503が返る、リクエストが拒否される:Nano Banana API が動かない時の切り分け:429、503、画像なし、拒否
- 200 OKなのに画像が入っていない:Nano Banana APIで画像が生成されない原因と対処
- Google Cloudの権限管理やリージョン指定が必要で、Vertex AI経由で使いたい:Vertex AIでNano Bananaを動かす設定と料金。どちらにするか迷う場合はGemini API と Vertex AI API の選び方:速く始めるか、クラウド運用で固めるか
- 思いどおりの絵にならない:Nano Banana プロンプトの作り方:実践ガイドと50個の検証用テンプレート
- Claude Codeの作業の中で画像を生成したい:Claude CodeでNano Bananaを動かす設定
- 支払いを複数のモデル提供元とまとめたい、Googleへの直結が止まったときの予備経路を持ちたい:Nano Banana APIの安定ルート:Google直結、laozhang.aiゲートウェイ、二系統運用。LaoZhang APIでは2.1が1回$0.045で、サイズやthinkingの設定によらず同額です(2026年10月8日時点、LaoZhang APIのNano Banana 2.1ドキュメント)。1Kでは上のトークン込みの計算(約$0.043)とほぼ同じで、2K($0.0504)と4K($0.113)ではGoogleの画像出力の定価だけで定額を上回ります。ゲートウェイはリクエストの形や対応機能がGoogleと同じではないため、切り替える前に確認します。
よくある質問
Nano Banana APIは無料で使えますか?
画像を生成するAPI呼び出しには無料枠がありません。APIキーの作成自体は無料ですが、画像出力はどのモデルも有料枠でのみ利用でき、課金を有効にしたプロジェクトが必要です。コードを書かずに試したいだけならGeminiアプリの画像生成があり、Googleの製品ページでは無料ユーザーがNano Banana 2、Google AIプランの加入者が2.1を使えるとしています(ヘルプセンターの説明はまだNano Banana 2のままで、1日の枚数は公開されていません)。詳しくはGemini画像生成の使い方:アプリ・無料上限・APIの始め方で確認できます。
公式ドキュメントはどこにありますか?
ai.google.devの画像生成ページが本体です。2.1の仕様はNano Banana 2.1のモデルページ、キーはAPIキーのページ、料金は料金ページ、モデルの停止日は廃止スケジュール、Interactions APIの全体像はInteractions APIの概要ページにあります。
「Nano Banana API ドキュメント」という名前の別サイトとは何が違いますか?
そうしたサイトの多くは、自社のAPIキーやトークンを発行して独自のエンドポイントで画像生成を提供しています。Googleの公式APIではないため、料金、対応モデル、上限、データの扱いはそのサイトの規約次第です。公式APIに直接つなぐなら、Google AI Studioのキーとgenerativelanguage.googleapis.comを使います。
Nano Banana APIはどのモデルから使えばいいですか?
gemini-nano-banana-2.1(Nano Banana 2.1)です。1Kで足りて速度を最優先するならgemini-3.1-flash-lite-image、画像内の文言を指定どおりに入れることが成果物の価値を決めるならgemini-3-pro-imageに切り替えます。gemini-3.1-flash-image(Nano Banana 2)は非推奨で、0.5Kが必要な場合を除いて新しく選ぶ理由はありません。
Nano Banana 2(gemini-3.1-flash-image)はいつまで使えますか?
Gemini APIでは2026年10月6日に非推奨になりましたが、2026年10月8日時点で停止日は発表されていません。Googleは2.1への移行を求めています。Vertex AIでは別の日程で、サポート終了は「2027年5月28日以降」とされています。停止日が決まれば廃止スケジュールに載るので、0.5Kを使っていない処理から先に2.1へ移しておくと慌てずに済みます。
generateContentは使えなくなりますか?
停止の予定は発表されていません。GoogleはgenerateContentを引き続き完全にサポートするとしており、Interactions APIは新規開発向けの推奨です。ただし、どちらのAPIでも停止済みのモデルIDは使えないため、モデルIDは先に更新してください。
参考資料10
本文で参照している外部ページを、登場順に並べています。最終更新日:2026年10月8日。
参考資料10
本文で参照している外部ページを、登場順に並べています。最終更新日:2026年10月8日。
- 1.Gemini API画像生成ページai.google.dev/gemini-api/docs/image-generation
- 2.Google AI Studioaistudio.google.com
- 3.公式のAPIキー解説ai.google.dev/gemini-api/docs/api-key
- 4.Gemini APIの廃止スケジュールai.google.dev/gemini-api/docs/deprecations
- 5.Interactions APIの破壊的変更ガイドai.google.dev/gemini-api/docs/interactions-breaking-changes-may-2026
- 6.移行ガイドai.google.dev/gemini-api/docs/migrate-to-interactions
- 7.Gemini APIの料金ページai.google.dev/gemini-api/docs/pricing
- 8.Gemini APIのレート制限ドキュメントai.google.dev/gemini-api/docs/rate-limits
- 9.Nano Banana 2.1のモデルページai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1
- 10.Interactions APIの概要ページai.google.dev/gemini-api/docs/interactions-overview





