Nano Banana 2.1 API 使い方

「Nano Banana 2.1 API (gemini-nano-banana-2.1)」を呼び出す:curl、Python、JSでの初回画像、2K/4K、編集、マルチターン、グラウンディング、および画像あたりの費用。

Medy Evrard

6 10月 2026

Nano Banana 2.1 API 使い方

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

Googleは2026年10月6日にNano Banana 2.1をリリースしました。これはすでにGemini APIを通じてgemini-nano-banana-2.1として呼び出し可能です。これは、Nano Banana 2(Gemini 3.1 Flash Image)のアップデート版で、視覚的な品質が向上し、マスクスタイル編集が可能になり、ターン間でのキャラクターの一貫性が強化されています。また、両モデルが対応するすべての解像度において、Nano Banana 2の半分のコストで画像を生成できます。

このガイドでは、空のターミナルから画像を保存するまでの手順を説明し、その後、アスペクト比、2Kおよび4K出力、編集、複数ターンの変更、参照画像、検索グラウンディング、コストについて解説します。以下の各リクエストはApidogに保存して再生できるため、2.1を現在使用しているモデルと比較できます。

ボタン

まず背景を知りたいですか?何が変更され、Googleがまだ公開していないかについては、Nano Banana 2.1とはをお読みください。

必要なもの

項目 値
ベースURL https://generativelanguage.googleapis.com/v1beta
認証ヘッダー x-goog-api-key: $GEMINI_API_KEY
モデルID gemini-nano-banana-2.1
エンドポイント POST /v1beta/interactions
解像度 1K(デフォルト)、2K、4K
入力 テキスト、画像(最大14枚の参照)、動画
Python SDK pip install google-genai
JavaScript SDK npm install @google/genai

すべての例では、Googleの画像生成ドキュメントが2.1用に使用しているInteractions APIを使用しています。

ステップ1:Gemini APIキーを取得する

  1. Google AI Studioを開き、サインインします。
  2. APIキーを取得に進み、Google Cloudプロジェクトでキーを作成します。
  3. そのプロジェクトの請求を有効にします。Googleの料金ページでは、Nano Banana 2.1の無料枠は「利用不可」と記載されているため、API呼び出しには有料プロジェクトが必要です。
  4. キーをエクスポートします。
export GEMINI_API_KEY="your-key-here"

Googleは2.1をAI Studio Playgroundにリンクしており、これはプロンプトのテストに便利ですが、無料アカウントでどれだけ生成できるかについては公開していません。Nano Banana 2.1を無料で使う方法に関するガイドではその方法をカバーしており、Gemini APIキーの取得ではキーのセットアップについてより詳しく説明しています。

ステップ2:最初の画像を生成する

curl

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": "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme"}
    ]
  }'

レスポンスはJSONです。画像はイメージコンテンツブロック内にbase64データとして届くため、デコードするにはSDK(またはスクリプト)が必要です。

Python

from google import genai
import base64

client = genai.Client()  # reads GEMINI_API_KEY

interaction = client.interactions.create(
    model="gemini-nano-banana-2.1",
    input="Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme",
)

with open("generated_image.png", "wb") as f:
    f.write(base64.b64decode(interaction.output_image.data))

interaction.output_imageは最後に生成された画像ブロックを返します。そのdataフィールドはbase64なので、ファイルを書き込む前にデコードしてください。

JavaScript

import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";

const ai = new GoogleGenAI({});

const interaction = await ai.interactions.create({
  model: "gemini-nano-banana-2.1",
  input: "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme",
});

const image = interaction.output_image;
if (image) {
  fs.writeFileSync("nano-banana.png", Buffer.from(image.data, "base64"));
}

Gemini 3の画像モデルは、描画する前に思考します。モデルは構図を計画している間、最大2つの一時的な「思考画像」を生成する場合があります。これらには料金はかからず、APIで思考をオフにすることはできません。

ステップ3:アスペクト比、解像度、画像のみの出力を設定する

出力を制御するにはresponse_formatを使用します。"type": "image"を設定すると、画像のみが返され、会話テキストは削除されるため、レスポンスが小さくなり、解析が簡単になります。

interaction = client.interactions.create(
    model="gemini-nano-banana-2.1",
    input="A product shot of a matte black coffee grinder on a marble counter",
    response_format={
        "type": "image",
        "mime_type": "image/png",
        "aspect_ratio": "16:9",
        "image_size": "2K",
    },
)

知っておくべきこと:

ステップ4:既存の画像を編集する

テキスト指示の隣に、base64でエンコードされたimageブロックとして画像を送信します。

with open("living_room.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": "Using the provided image of a living room, change only the blue sofa to be a vintage, brown leather chesterfield sofa. Keep the rest of the room, including the pillows on the sofa and the lighting, unchanged."},
        {"type": "image", "data": image_b64, "mime_type": "image/png"},
    ],
)

マスクファイルなしでのマスクスタイルインペインティング

個別のマスクアップロードはありません。マスクは言葉で定義します。Googleのテンプレート:

提供された画像を使用し、[特定の要素]のみを[新しい要素/説明]に変更してください。元のスタイル、照明、構図を維持し、画像内のその他すべてをまったく同じに保ってください。

1つの要素を挙げ、具体的な置き換えを記述し、固定すべきものを繰り返します。「ソファをより素敵にする」のような曖昧なプロンプトは、モデルに部屋全体を描き直させることになります。

ステップ5:マルチターン編集で反復する

マルチターンは、Googleが推奨する画像の調整方法です。以前のインタラクションのidをprevious_interaction_idとして渡し、変更したい部分のみを送信します。

interaction_2 = client.interactions.create(
    model="gemini-nano-banana-2.1",
    input="Update this infographic to be in Spanish. Do not change any other elements of the image.",
    previous_interaction_id=interaction.id,
    response_format={"type": "image", "mime_type": "image/png", "aspect_ratio": "16:9", "image_size": "2K"},
)

RESTでは、同じフィールドがボディに入ります。"previous_interaction_id": "<PREVIOUS_INTERACTION_ID>"。2.1の改善されたマルチターンキャラクターの一貫性が重要となるのはこの点です。キャラクターや製品は、数回の編集ラウンドを通じて認識可能な状態を維持する必要があります。

ステップ6:最大14枚の参照画像を組み合わせる

inputリストにさらにimageブロックを追加します。2.1の場合、Googleは最大10枚の高忠実度オブジェクト画像と最大4枚のキャラクター画像、合計14枚を文書化しています。

interaction = client.interactions.create(
    model="gemini-nano-banana-2.1",
    input=[
        {"type": "text", "text": "An office group photo of these people, they are making funny faces."},
        {"type": "image", "data": person_1_b64, "mime_type": "image/png"},
        {"type": "image", "data": person_2_b64, "mime_type": "image/png"},
        {"type": "image", "data": person_3_b64, "mime_type": "image/png"},
    ],
    response_format={"type": "image", "aspect_ratio": "5:4", "image_size": "2K"},
)

参照画像は入力トークンであり、2.1の入力コストはNano Banana 2の3倍です。参照画像を多用するワークフローでは価格差が縮まるため、切り替える前に測定してください。

ステップ7:Google検索で画像をグラウンディングする

天気図や最近のイベントなど、現在の事実に依存する画像の場合は、検索ツールを追加します。

interaction = client.interactions.create(
    model="gemini-nano-banana-2.1",
    input="A detailed painting of a Timareta butterfly resting on a flower",
    tools=[{"type": "google_search", "search_types": ["web_search", "image_search"]}],
)

{"type": "google_search"}単独ではウェブ検索が提供されます。image_searchを追加すると、モデルがウェブ画像を視覚的コンテキストとして使用できるようになりますが、これは2.1とNano Banana 2のみがサポートしています。グラウンディングは、検索からの現実世界の人物画像を使用できません。グラウンディングされた結果をユーザーに表示する場合、Googleはgoogle_search_resultステップで返されるsearch_suggestionsを表示することを義務付けています。

ステップ8:Apidogでテストする

スクリプトは生成には問題ありません。プロンプト、キー、モデルが期待どおりに動作するかを確認するには、保存されたリクエストの方が高速です。Apidogでは:

  1. 環境を作成し、キーを含む変数GEMINI_API_KEYを追加します。
  2. リクエストを作成します:POST https://generativelanguage.googleapis.com/v1beta/interactions。
  3. ヘッダーx-goog-api-key: {{GEMINI_API_KEY}}を追加します。
  4. model、input、response_formatを含むJSONボディを貼り付け、Sendをクリックします。
  5. 2つのアサーションを持つレスポンス後スクリプトを追加します。
pm.test("status is 200", () => {
  pm.response.to.have.status(200);
});

pm.test("response contains an image block", () => {
  const steps = pm.response.json().steps || [];
  const hasImage = steps.some(s =>
    s.type === "model_output" &&
    (s.content || []).some(c => c.type === "image" && c.data)
  );
  pm.expect(hasImage).to.be.true;
});
  1. リクエストを複製し、modelをgemini-3.1-flash-imageに変更します。両方を同じプロンプトで送信します。

これで、2.1とNano Banana 2の並行比較ができ、各実行のステータス、タイミング、レスポンスサイズが表示されます。より広範な機能比較については、Nano Banana 2.1 vs Nano Banana 2 vs Proをご覧ください。

コスト

有料ティア、2026年10月7日時点のGoogle料金ページより:

モデル 入力 / 1M 1K画像 2K画像 4K画像 バッチ 1K
Nano Banana 2.1 $1.50 $0.0336 $0.0504 $0.0756 $0.0168
Nano Banana 2 $0.50 $0.067 $0.101 $0.151 $0.034
Nano Banana Pro $2.00 $0.134 $0.134 $0.24 $0.067

2.1の画像出力は100万トークンあたり30ドルです。1K画像は1,120トークン、2Kは1,680トークン、4Kは2,520トークンであり、これが画像あたりの価格の算出根拠です。テキストと思考の出力は100万あたり7.50ドルです。検索グラウンディングには、Gemini 3.xモデル全体で共有される月間5,000件の無料リクエストが含まれ、その後は1,000件あたり14ドルです。

例:短いテキストプロンプト(各約100入力トークン)から2Kの製品画像を1,000枚生成する場合。

Nano Banana 2で同じ作業を行うと約101ドルかかります。Batch APIを使用すると、2.1の2K価格は0.0252ドルに下がるため、待つことができるなら出力側の費用は25.20ドルになります。バッチジョブは、より高いレート制限と引き換えに最大24時間の処理時間を要します。Nano Banana 2の料金に関する詳細は、Nano Banana 2 API料金内訳をご覧ください。

よくあるエラー

これらは一般的なGemini APIの動作であり、2.1固有のエラーではありません。

エラー 考えられる原因 修正
400 INVALID_ARGUMENT image_sizeが小文字、サポートされていない比率、不正なinput 2kではなく2Kを使用。比率リストを確認する。
403 PERMISSION_DENIED キーが正しくない、または請求設定がされていないプロジェクト キーを確認し、請求を有効にする。
404 NOT_FOUND モデルIDの入力ミス gemini-nano-banana-2.1を正確に使用する。
429 RESOURCE_EXHAUSTED レート制限に達した バックオフして再試行するか、バッチを使用する。
500 / 503 一時的なサーバーの問題 指数関数的バックオフで再試行する。
200だが画像なし プロンプトがブロックされたか、テキストのみの回答 "type": "image"を設定し、プロンプトを再構築する。

よくある質問

まとめ

Nano Banana 2.1は、Nano Banana 2の画像あたりの半分の価格で、同じInteractions APIの形式でより良い画像を約束します。課金キーを取得し、画像を1枚生成し、ステータスと画像のアサーションとともにApidogにリクエストを保存します。古いモデルIDでそれを複製すれば、午後には2.1があなたのプロンプトの切り替えに値するかどうかがわかるでしょう。

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる