Nano Banana 2.1の画像生成料金はいくら?1枚の費用と一括生成の見積もり方

Nano Banana 2.1の料金を入力・画像・推論トークンに分けて計算。1Kの実際の応答、一括生成の予算例、4K資料の不一致と請求確認の注意点を解説します。

淡いカードに描かれたそろばんの線画、幾何学模様とNano Banana 2.1の見出し。

2026年10月13日時点で、Ofoxの公開カタログには google/gemini-nano-banana-2.1 の料金として、入力トークン100万個あたり$1.50、テキスト出力トークン100万個あたり$7.50、画像出力トークン100万個あたり$30、ウェブ検索1回あたり$0.014と記載されています。 テストした1K画像では画像出力トークンを1,120個使っており、掲載料金で計算した画像部分の料金は$0.0336でした。これはリクエスト全体の固定料金ではありません。入力、テキスト、課金対象となる可能性のある推論トークン、検索、再試行、その後の編集で料金が増えることがあります。

この記事を公開しているOfoxは、テストに使用したAPIゲートウェイも運営しています。以下の料金は、同社の公開カタログを特定の日付で確認したもので、請求書に記載される金額でも、今後のリクエストが同じ金額で課金されるという保証でもありません。APIの確認にはOfoxのゲートウェイを使いました。画像レスポンスと使用量の数値は、その確認で得られたものです。

単位を混同せずに見る掲載料金

OfoxのモデルIDは google/gemini-nano-banana-2.1 です。公開モデルページには、GeminiとOpenAIのプロトコル、プロバイダーとしてVertexが記載されています。カタログの料金は、項目ごとに課金単位が異なります。

カタログの項目掲載料金(USD)単位対象
入力$1.50入力トークン100万個あたりプロンプトや、サービス上で計上される画像・会話コンテキストなどの送信コンテキスト
テキスト出力$7.50出力トークン100万個あたり生成テキスト。Googleの料金ページでは、テキストと推論トークンがこの料金にまとめられています
画像出力$30.00画像出力トークン100万個あたり生成画像のトークン。画像1枚あたり$30という意味ではありません
ウェブ検索$0.014検索リクエスト1回あたり該当する場合に発生する、リクエスト単位の別料金。画像生成のたびに加算する料金ではありません

このモデルのカタログ上のプロバイダー料金は null です。これは、プロバイダーの割引やプロバイダー側の費用がゼロであること、または掲載料金の代わりに使える別料金があることを示すものではありません。同様に、カタログの型定義では、output_image はトークンあたりの料金、output_image_per_num は別の画像枚数あたりのフィールドとして区別されています。前者を画像1枚あたりの固定料金として扱わないでください。

料金は2026年10月13日に公開Ofoxカタログから取得しました。編集時の監査では、日付が特定されたリポジトリのリビジョンを参照し、カタログの実装とフィールド定義も確認しました。カタログは動的で、実装には固定の料金表がGitに保存されていません。input、output、output_image はトークン単位のフィールドで、web_search はリクエスト単位です。実装の確認で分かるのはフィールドの意味であり、デプロイ済みサービスが特定のリポジトリリビジョンと一致することや、見積もり額が確定請求額と一致することではありません。

実測した最初のリクエストと、仮定を含む合計額

最初にテストしたリクエストは、OfoxのネイティブGeminiエンドポイントを通した、1:1の1Kポスター生成でした。HTTP 200とSTOPが返り、1024 × 1024のPNGが生成されました。報告された使用量は、入力トークン54個、報告されたテキスト出力トークン80個、画像出力トークン1,120個、推論トークン639個でした。実際のコンテンツに含まれていたのは画像パートのみで、目に見えるテキストパートはありませんでした。この80個は使用量メタデータに記録された数値であり、目に見える文章のトークン数ではありません。 画像出力部分の料金は次のとおりです。

1,120 image-output tokens × ($30 / 1,000,000 tokens) = $0.033600
54 input tokens         × ($1.50 / 1,000,000 tokens) = $0.000081
80 reported text tokens  × ($7.50 / 1,000,000 tokens) = $0.000600
                                                Subtotal = $0.034281

もし、報告された639個の推論トークンすべてに、テキストと同じく100万個あたり$7.50の料金が適用されると仮定すると(これは見積もりのための仮定であり、請求額として確認されたものではありません)、次の金額が加わります。

639 × $7.50 / 1,000,000 = $0.0047925
Assumed estimate for this request = $0.034281 + $0.0047925
                                  = $0.0390735

この見積もりには、このリクエストから確認できていない料金が適用される場合の金額は含まれておらず、Ofoxから請求された金額として示すべきものでもありません。また、「1Kは3.36セント」と言う場合に条件が必要な理由も分かります。この実測例で3.36セントなのは、画像部分の料金です。

一律の画像単価を仮定せず、自分のレスポンスを確認するには、テストで使った最初のプロンプトをそのまま使う次のリクエストを実行します。使用量と画像パートを別々に確認できるよう、レスポンス全体を保存します。

cat > request.json <<'JSON'
{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "Create a square minimalist event poster on warm cream paper. Large exact headline: ORCHARD MARKET. Smaller exact line: SATURDAY 10 AM. Draw three red apples in a blue ceramic bowl below the text. No other text, no logos, no border."
    }]
  }],
  "generationConfig": {
    "responseModalities": ["TEXT", "IMAGE"],
    "imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}
  }
}
JSON

curl --fail-with-body \
  -H "x-goog-api-key: $OFOX_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @request.json \
  "https://api.ofox.io/gemini/v1beta/models/google/gemini-nano-banana-2.1:generateContent" \
  > response.json

python3 - <<'PY'
import base64
import json

with open("response.json", encoding="utf-8") as f:
    response = json.load(f)

print(json.dumps(response.get("usageMetadata", {}), indent=2))
for candidate_index, candidate in enumerate(response.get("candidates", [])):
    for part_index, part in enumerate(candidate.get("content", {}).get("parts", [])):
        inline = part.get("inlineData")
        mime = (inline or {}).get("mimeType", "")
        if inline and inline.get("data") and mime.startswith("image/"):
            extension = {"image/png": ".png", "image/jpeg": ".jpg", "image/webp": ".webp"}.get(mime)
            if extension is None:
                raise ValueError("Unsupported image MIME type: " + mime)
            name = f"image-{candidate_index}-{part_index}{extension}"
            with open(name, "wb") as f:
                f.write(base64.b64decode(inline["data"], validate=True))
            print("Saved", name, inline.get("mimeType"))
        elif "text" in part:
            print("Text part:", part["text"])
PY

先に環境変数 OFOX_API_KEY を設定してください。このコードはテキストパートを画像として扱わず、返されたインライン画像パートをすべて保存します。ファイル名の拡張子は返されたMIMEタイプに合わせます。未対応のタイプが返された場合は、PNGと誤表示せずに抽出を停止します。会話を続ける場合は、JSON全体を保存してください。複数ターンの確認では、以前の各 candidates[0].content を、思考署名パートを含めてそのまま返し、その後に新しいユーザーターンを追加しました。そのコンテンツを抽出したテキストや画像から再構成しても、同じものにはなりません。この料金例以外のリクエスト設定やレスポンス処理については、Nano Banana 2.1 APIガイドを参照してください。

解像度によって画像部分の料金が変わる

Googleの公式料金ページにはトークン数と画像料金の例が掲載され、モデルドキュメントには対応する解像度が記載されています。次の表では、Ofox経由で実際に得られた結果と、別の資料に記載された情報を分けています。

指定解像度例として使う画像出力トークン数$30/Mで計算した画像部分の料金根拠と制限
1K1,120$0.0336テストした2.1の3件すべてで観測。各リクエストから1024 × 1024のPNGが返りました
2K1,680$0.0504Googleが記載している数値。Ofoxのこの経路では未テスト
4K3,780約$0.1134Googleの料金資料およびVertexのドキュメントに記載された数値。Ofoxのこの経路では未テスト

4Kのドキュメントには無視できない食い違いがあります。 Googleの画像生成ドキュメントにある画像生成の表では、画像トークン数が2,520個とされています。100万個あたり$30で計算すると、画像部分の料金は$0.1134ではなく$0.0756です。矛盾する数値を単純に平均したり、Ofoxの4K料金として確約したりすべきではありません。4Kをどちらの金額で予算化する場合も、最新のドキュメント、カタログ、実際の4Kレスポンスと請求額を確認してください。掲載された1Kの数値と、Googleが記載した2Kの数値にも、リクエストの他の料金項目は含まれていません。

採用する画像、再試行、編集を含めて予算を立てる

バッチ処理では、最終的に残す画像だけでなく、生成した出力数を数えてください。実測した1K画像の画像部分1,120トークンを一定と仮定すると、次のようになります。

100 generated 1K outputs × $0.0336 = $3.36 image component
125 generated 1K outputs × $0.0336 = $4.20 image component

2行目は、100枚を採用するために125枚を生成する架空のジョブ(採用率80%)を示しています。これは実測した採用率でも予測でもありません。どちらの合計にも、入力、テキスト、思考、該当する場合の検索、その他の料金が発生する可能性のある項目は含まれていません。候補を複数生成する場合、結果が意図に合わず再生成する場合、編集を試す場合も、生成枚数に影響します。不採用の画像も、生成されたことに変わりはありません。

編集を繰り返す場合は、別の問題もあります。後続のリクエストでは以前の会話コンテンツと画像を送信するため、入力使用量が増えることがあります。2.1でテストした3段階の連続編集では、次のフォローアップをそのまま使用しました。

“Change only the headline from ORCHARD MARKET to ORCHARD FAIR. Keep SATURDAY 10 AM exactly unchanged. Preserve the three red apples, blue bowl, cream background, composition and all other pixels as closely as possible.”

“Now change only the bowl from blue to dark green. Preserve ORCHARD FAIR, SATURDAY 10 AM, the three red apples and the layout.”

テストした2.1のターン報告された入力トークン数報告された画像出力トークン数掲載料金で計算した画像部分掲載料金で計算した入力部分
最初のポスター541,120$0.033600$0.0000810
見出しの編集1,1671,120$0.033600$0.0017505
ボウルの編集2,2721,120$0.033600$0.0034080

画像部分だけで合計$0.1008です。報告された入力部分の合計は、テキスト出力や推論トークンの料金を仮定する前の時点で$0.0052395です。最初のターンではテキスト出力トークンが80個、推論トークンが639個報告されました。2回目のターンではTEXT出力のカテゴリが報告されず、推論トークンは358個でした。3回目のターンではTEXT出力のカテゴリが報告されず、推論トークンも報告されませんでした。「報告されていない」を「課金がゼロだった」と読み替えてはいけません。また、返された使用量の情報だけでは、送信した履歴がどのように計上されたかをすべて説明できません。このため、編集ワークフローの見積もりに単純な3枚分の料金を加えるだけでは、実際の使用量と課金を確認しないかぎり安全ではありません。ポスター編集の手順では、編集結果を視覚面から解説しています。保持の指示がピクセル単位の保証になると見なすものではありません。

2.1はNano Banana 2より安い?

どの料金項目を指すかによります。旧モデルの正確なOfox IDは google/gemini-3.1-flash-image です。日付を特定したカタログのスナップショットでは、掲載料金は入力100万個あたり$0.50、テキスト出力100万個あたり$3、画像出力100万個あたり$60でした。同じ画像出力トークン1,120個を使う場合、掲載料金で計算した画像部分の料金は次のとおりです。

Nano Banana 2:   1,120 × $60 / 1,000,000 = $0.0672
Nano Banana 2.1: 1,120 × $30 / 1,000,000 = $0.0336

つまり、2.1の掲載された画像トークン単価は旧モデルの半額です。一方で、掲載された入力料金は3倍、テキスト出力料金は2.5倍です。リクエスト全体やワークフローの料金が一律で「50%オフ」と宣伝するのは正しくありません。

旧モデルでも、対応する3段階の編集チェーンを1回実行しました。両モデルで実行した合計6件のリクエストはすべてHTTP 200とSTOPを返し、各ターンで1024 × 1024のPNGが1枚生成されました。この限定的な比較では、プロンプトと画像出力トークン数が観測上そろっていました。ただし、モデルごとに異なるデフォルト設定が使われた可能性があります。seedも推論レベルも指定せず、繰り返しテストもしていません。旧モデルでは、これらの実行で推論トークンが報告されませんでしたが、推論の費用がゼロだった証拠ではありません。2.1と2の比較では、このテストで分かる視覚面の範囲を扱っています。一般的な品質や総費用の順位を示すものではありません。

予算を確定する前に確認すること

まとまった生成を行う前に、最新のOfoxカタログとモデルページを確認してください。日付を特定したスナップショットは古くなることがあり、Gitの実装リンクによって動的な料金が固定されるわけではありません。モデルID、指定解像度、レスポンスの使用量、生成枚数、請求書またはアカウントの課金データを記録し、実際に観測した課金と、掲載料金をもとに計算した金額を分けてください。リクエストからテキストしか返らなかった場合、エラーになった場合、使える画像が得られなかった場合も、無料だと決めつけないでください。使用量と課金結果を確認してください。画像が返らない場合のトラブルシューティングガイドでは、レスポンスのパートと失敗時の確認方法を説明しています。

最後に、機能と料金の主張は分けて考えてください。Googleのドキュメントには、最大14枚の参照画像と1K、2K、4Kへの対応が記載されていますが、Ofox経由で今回すべてを試したわけではありません。Ofoxの公開モデルページの画面は、モデルが掲載されていることと、準備できることを示すものであり、APIで生成した結果ではありません。埋め込みのPlaygroundにはログインが必要で、認証済みのAgentでモデルを選ぶテストはしていません。Agentが間違いなく2.1を選ぶという結論には、ここでの説明は依存していません。

この記事の作成にはAIを利用し、記載したAPIレスポンスと情報源のつながりを照合したうえで、公開前に独立したAIレビューを行いました。最も根拠を示しやすい目安は、実測した1K画像生成の画像出力部分が$0.0336というものです。それ以外の料金は、実際のリクエストで使われた項目ごとに別途見積もり、あとから確認してください。