メインコンテンツへスキップ

Nano Banana APIの使い方:公式ドキュメントと2.1のコード

Nano Banana APIは新規ならgemini-nano-banana-2.1で始めます。1K画像1枚$0.0336で無料枠はなく、Nano Banana 2は非推奨です。

LaoZhang AI Team公開更新 36 分で読めます
目次
Nano Banana 2、Lite、ProのモデルIDと1枚あたりの料金、画像出力に無料枠がないことを示すNano Banana APIガイドの表紙

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.1gemini-nano-banana-2.1新規開発の出発点。生成、編集、マルチターン修正、複数参照画像2026年10月6日GA。0.5K(512px)は非対応
Nano Banana 2 Litegemini-3.1-flash-lite-image1Kで足りる大量生成、低遅延が必要な処理1Kのみ。複数の参照画像やマルチターン編集には最適化されていない
Nano Banana Progemini-3-pro-image画像内の文言を指定どおりに入れたい最終素材、図解、テキストと画像の交互出力1枚の単価は2.1の約2.7〜4倍(1K・2K)
Nano Banana 2gemini-3.1-flash-image0.5Kが必要な処理、移行前の既存システムGemini APIで非推奨(停止日は未発表)。Googleは新規プロジェクトに2.1を推奨
Nano Bananagemini-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 editingNano Banana 2.1(Liteは不向き)
人物・商品・スタイルを複数の画像から合成するUse up to 14 reference imagesNano Banana 2.1、スタイル参照が必要ならPro
天気やニュースなど最新情報を反映した図を作るGrounding with Google SearchNano Banana 2.1またはPro(Liteは非対応)
2K・4Kや縦長・横長の比率で出力するGenerate images up to 4K resolution / Optional configurationsNano Banana 2.1。Liteは1Kのみ
大量の画像を安く作るGenerate images in batchLiteか、Nano Banana 2.1のBatch
文章とイラストを交互に並べた出力Interleaved text and imagesPro

モデルごとの違いは、次の能力表にまとめられます。料金はGoogle有料枠の1枚あたり換算(米ドル)です。

項目Nano Banana 2 LiteNano Banana 2.1Nano Banana 2(非推奨)Nano Banana Pro
出力解像度1Kのみ1K、2K、4K512px(0.5K)、1K、2K、4K1K、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.03361K $0.0336、2K $0.0504、4K $0.1131K $0.067、2K $0.101、4K $0.1511K・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」から既存プロジェクトをインポートし、そのプロジェクトでキーを作成します。

APIキーの作成、SDK 2.3.0以上の導入、interactions.createでの生成、output_imageの保存までの4ステップと、previous_interaction_idで修正を続ける方法

キーまわりで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が優先されます。

bash
# 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以上です。

bash
pip install -U "google-genai>=2.3.0"
npm install @google/genai@latest

Pythonで1枚生成してファイルに保存する最小のコードです。公式ページのサンプルと同じ形で、モデルはgemini-nano-banana-2.1です。

python
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)でも構造は同じです。

javascript
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ヘッダーで渡します。

bash
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があれば次のように取り出せます。

bash
jq -r '.steps[] | select(.type == "model_output") | .content[] | select(.type == "image") | .data' response.json \
  | head -n 1 | base64 --decode > generated_image.png

SDKの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など)を同じ場所に書けます。

python
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)を並べます。アップロードする画像の権利を持っていることが前提です。

python
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人の写真から集合写真を作る例が載っています。

python
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に渡すだけで、サーバー側に保存された前回の文脈と画像を引き継げます。

python
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として渡します。

bash
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です。

python
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を順に読みます。

python
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が残っていると、リクエストは失敗します。

2025年11月14日から2026年10月2日までに停止・変更された画像モデルIDとAPI仕様、それぞれの置き換え先を並べた年表

コードにあるもの何が起きたか直し方
gemini-2.0-flash-preview-image-generation2025年11月14日に停止gemini-nano-banana-2.1に変更
gemini-2.5-flash-image-preview2026年1月15日に停止gemini-nano-banana-2.1に変更
gemini-3-pro-image-preview2026年6月25日に停止gemini-3-pro-imageに変更
gemini-3.1-flash-image-preview2026年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 keyGemini 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 APIgenerateContent
エンドポイントPOST /v1beta/interactionsPOST /v1beta/models/{model}:generateContent
出力の種類response_formatのtypegenerationConfig.responseModalities
比率とサイズresponse_formatのaspect_ratio、image_sizegenerationConfig.imageConfigのaspectRatio、imageSize
画像の取り出しoutput_imageまたはstepscandidates[].content.parts[]のinlineData
マルチターンprevious_interaction_idでサーバーが履歴を保持履歴を自分で送り直す

generateContentで画像だけを受け取るPythonの例です。APIリファレンスのフィールドに沿って書いたもので、Googleのキーで実行した結果は含みません。

python
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.11K $0.0336、2K $0.0504、4K $0.1131K $0.0168、2K $0.0252、4K $0.0567
Nano Banana 2 Lite1K $0.03361K $0.0168
Nano Banana Pro1K・2K $0.134、4K $0.241K・2K $0.067、4K $0.12
Nano Banana 2(非推奨)0.5K $0.045、1K $0.067、2K $0.101、4K $0.1510.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日何回?回復の仕組みにまとめています。

うまくいかないとき・次に読むもの

よくある質問

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日。

  1. 1.Gemini API画像生成ページai.google.dev/gemini-api/docs/image-generation
  2. 2.Google AI Studioaistudio.google.com
  3. 3.公式のAPIキー解説ai.google.dev/gemini-api/docs/api-key
  4. 4.Gemini APIの廃止スケジュールai.google.dev/gemini-api/docs/deprecations
  5. 5.Interactions APIの破壊的変更ガイドai.google.dev/gemini-api/docs/interactions-breaking-changes-may-2026
  6. 6.移行ガイドai.google.dev/gemini-api/docs/migrate-to-interactions
  7. 7.Gemini APIの料金ページai.google.dev/gemini-api/docs/pricing
  8. 8.Gemini APIのレート制限ドキュメントai.google.dev/gemini-api/docs/rate-limits
  9. 9.Nano Banana 2.1のモデルページai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1
  10. 10.Interactions APIの概要ページai.google.dev/gemini-api/docs/interactions-overview
さらに読む: API ガイド
Nano Banana APIで画像が返らないときに見るfinishReasonとstatus・steps、再送では直らないポリシー停止と停止済みIDをまとめた図
トラブルシューティング

Nano Banana APIで画像が生成されない原因と対処

HTTP 200でも画像が返らない形はテキストだけ、candidatesが空、NO_IMAGEなどに分かれ、対処も違います。ポリシーのブロックと停止済みIDは再送しても直りません。

24 分
Claude CodeでNano Bananaを動かす3条件:GA版モデルID gemini-3.1-flash-image、無料枠のない課金済みAPIキー、キーは環境変数で渡す
Claude Code

Claude CodeでNano Bananaを動かす設定

Claude CodeからNano Bananaを使うならGA版モデルIDと課金済みのAPIキーが必須です。旧preview IDは2026年6月25日に提供終了しました。

23 分