> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mixroute.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Gemini Nano Banana 2.1

> Gemini Nano Banana 2.1の画像生成と対話型編集。ネイティブのリクエストフィールドとモデル固有の制限を紹介します。

Gemini Nano Banana 2.1は、画質、テキスト描画、参照の一貫性、横長画像を重視した、画像生成および会話形式の編集モデルです。`gemini-nano-banana-2.1`を使用してください。チャット専用のGeminiモデルで代用しないでください。

## モデル情報

| フィールド | 説明 |
| - | - |
| `model` | gemini-nano-banana-2.1 |
| `input limit` | 131,072トークン |
| `output limit` | 32,768トークン |
| `input / output` | テキスト、画像、動画、PDFの入力。画像とテキストの出力。ネイティブ音声出力はありません。 |
| `image output` | 1K（デフォルト）、2K、または4K。Nano Banana 2の512ティアは適用されません。 |

これらはモデルの仕様です。ルートの利用可否、課金、ファイルアクセス、リクエストサイズの上限は、選択したチャネルに依存します。画像出力には、以下のネイティブGeminiエンドポイントを使用します。

`POST https://api.mixroute.ai/v1/models/gemini-nano-banana-2.1:generateContent`

`POST https://api.mixroute.ai/v1/models/gemini-nano-banana-2.1:streamGenerateContent?alt=sse`

## 画像を生成

```bash theme={null}
curl --request POST "https://api.mixroute.ai/v1/models/gemini-nano-banana-2.1:generateContent" \
  --header "Authorization: Bearer $MIXROUTE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "Generate a clean product photograph of a red ceramic mug on a plain white background. No text."
        }
      ]
    }
  ],
  "generationConfig": {
    "responseModalities": [
      "TEXT",
      "IMAGE"
    ],
    "imageConfig": {
      "aspectRatio": "1:1",
      "imageSize": "1K"
    },
    "thinkingConfig": {
      "thinkingLevel": "MINIMAL"
    }
  }
}'
```

このエンドポイントでは、サイズとアスペクト比にネイティブの`generationConfig.imageConfig`フィールドを使用します。リクエストボディにmetadata、asset、OpenAIのsize/nフィールド、またはmodelフィールドを追加しないでください。モデルはURLで選択します。

## リクエストフィールド

| フィールド | 説明 |
| - | - |
| `contents` | partsを含む、必須のuser/modelターン。 |
| `contents[].parts[].text` | プロンプトまたは編集指示。 |
| `contents[].parts[].inlineData` | 入力画像オブジェクト：mimeTypeと生のBase64データ。data-URIプレフィックスは付けません。 |
| `contents[].parts[].fileData` | ネイティブのfileUri/mimeType参照。リソースはルートのアカウントからアクセスできる必要があります。 |
| `generationConfig.responseModalities` | 画像出力には\["TEXT","IMAGE"]または\["IMAGE"]を使用してください。 |
| `generationConfig.imageConfig.aspectRatio` | 1:1や16:9などの、ネイティブのアスペクト比文字列。 |
| `generationConfig.imageConfig.imageSize` | 1K、2K、または4K。大文字と小文字を区別します。デフォルトは1Kです。 |
| `generationConfig.thinkingConfig.thinkingLevel` | MINIMAL、MEDIUM（デフォルト）、またはHIGH。 |
| `generationConfig.thinkingConfig.includeThoughts` | 任意の思考要約パート。最終画像を保存するときは、thought=trueのパートをスキップしてください。 |
| `generationConfig.maxOutputTokens` | 画像とテキストを合わせた出力バジェットで、最大32,768です。バジェットが小さすぎると、完全な画像を生成できない場合があります。 |
| `tools` | ルートで有効化されている場合、ネイティブのGoogle Searchグラウンディングを利用できます。この画像モデルは関数呼び出しに対応していません。 |
| `safetySettings` | ネイティブのcategory/threshold設定。プロバイダーとアカウントのポリシーが適用されます。 |

## 制限

* アスペクト比には`1:1`、`1:4`、`4:1`、`1:8`、`8:1`、`2:3`、`3:2`、`3:4`、`4:3`、`4:5`、`5:4`、`9:16`、`16:9`、`21:9`があります。
* 参照画像は最大14枚で、モデルのガイダンスでは最大4体のキャラクターと10個のオブジェクトに対応します。これらは入力の上限であり、完全な一貫性を保証するものではありません。
* Vertexのインライン画像入力は、1枚あたり7 MBが上限です。PNG、JPEG、WebP、HEIC、HEIFに対応しています。その他のリクエスト制限がより厳しい場合があります。
* 非対応のサンプリング／ランダム性のフィールドtemperature、topP、topK、seed、logprobsは省略してください。
* 音声生成、任意の関数呼び出し、構造化されたJSON出力には対応していません。

## 編集と複数ターンでの使用

```json theme={null}
{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "Change the mug color to blue while preserving its shape and the white background."
        },
        {
          "inlineData": {
            "mimeType": "image/png",
            "data": "BASE64_IMAGE_DATA"
          }
        }
      ]
    }
  ],
  "generationConfig": {
    "responseModalities": [
      "TEXT",
      "IMAGE"
    ],
    "imageConfig": {
      "aspectRatio": "1:1",
      "imageSize": "1K"
    },
    "thinkingConfig": {
      "thinkingLevel": "MINIMAL"
    }
  }
}
```

BASE64\_IMAGE\_DATAを、元のバイト列をBase64でエンコードしたものに置き換えてください。会話形式の編集では、前のcandidate.content全体をモデルのターンとして保持し、その後に次のユーザーのターンを追加します。すべてのthoughtSignature値を厳密に保持し、画像の履歴をテキストだけに置き換えないでください。

## 出力の読み取り

candidates\[].content.parts\[]を種類ごとに処理します。思考以外のinlineDataパートは、そのMIMEタイプとBase64デコード後のバイト列を使用して保存し、テキストパートは別途読み取ります。レスポンスに画像がない場合は、promptFeedbackとfinishReasonを確認する必要があります。HTTPの成功だけでは、画像が出力されたとは限りません。

ストリーミングではJSONのstreamフラグではなく、同じボディでstreamGenerateContent?alt=sseを使用します。SSEのdataイベントを解析し、各JSONイベント内の画像パートとテキストパートを処理してください。

[画像の生成と編集](/ja/api-reference/endpoint/nano-banana) | [画像のストリーミング](/ja/api-reference/endpoint/nano-banana-stream)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.