Skip to main content
Nano Banana Pro の API リファレンスです。Nano Banana Pro (Gemini 3 Pro Image) は、Google の Nano Banana 画像生成ファミリーの Pro ティアであり、複雑なシーンや読み取りやすいテキストを対象としています。

クイックスタート

Comfy ワークスペースでキーを作成し、COMFY_API_KEY としてエクスポートします。Python と TypeScript のスニペットは Comfy SDK(pip install comfy-sdknpm install @comfyorg/sdk)を使用しています。cURL のスニペットは、同じ呼び出しを生の HTTP で行うものです。 モデル ID: vertexai/gemini-3-pro-image エンドポイント: POST https://api.comfy.org/v2/models/vertexai/gemini-3-pro-image

スキーマ

入力

object[]
必須
モデルとの現在の会話のコンテンツです。単一ターンのクエリでは単一のインスタンスになります。マルチターンのクエリでは、会話履歴と最新のリクエストを含む繰り返しフィールドになります。
object[]
必須
object
URI ベースのデータ。
string
URI
string
data または fileUri フィールドで指定されたファイルのメディアタイプです。指定可能な値は以下のとおりです。gemini-2.0-flash-lite および gemini-2.0-flash では、オーディオファイルの最大長は 8.4 時間、ビデオファイル (オーディオなし) の最大長は 1 時間です。詳細については、Gemini のオーディオとビデオの要件を参照してください。テキストファイルは UTF-8 でエンコードする必要があります。テキストファイルのコンテンツはトークン制限にカウントされます。画像の解像度に制限はありません。指定可能な値: application/pdf, audio/mpeg, audio/mp3, audio/wav, image/png, image/jpeg, image/webp, text/plain, video/mov, video/mpeg, video/mp4, video/mpg, video/avi, video/wmv, video/mpegps, video/flv, image/heic, image/heif, audio/flac, video/webm
object
生のバイト形式のインラインデータです。gemini-2.0-flash-lite および gemini-2.0-flash では、inlineData を使用して最大 3000 枚の画像を指定できます。
string (byte)
プロンプトにインラインで含める画像、PDF、またはビデオの base64 エンコーディングです。メディアをインラインで含める場合は、データのメディアタイプ (mimeType) も指定する必要があります。サイズ制限: 20MB形式: byte
string
data または fileUri フィールドで指定されたファイルのメディアタイプです。指定可能な値は以下のとおりです。gemini-2.0-flash-lite および gemini-2.0-flash では、オーディオファイルの最大長は 8.4 時間、ビデオファイル (オーディオなし) の最大長は 1 時間です。詳細については、Gemini のオーディオとビデオの要件を参照してください。テキストファイルは UTF-8 でエンコードする必要があります。テキストファイルのコンテンツはトークン制限にカウントされます。画像の解像度に制限はありません。指定可能な値: application/pdf, audio/mpeg, audio/mp3, audio/wav, image/png, image/jpeg, image/webp, text/plain, video/mov, video/mpeg, video/mp4, video/mpg, video/avi, video/wmv, video/mpegps, video/flv, image/heic, image/heif, audio/flac, video/webm
string
モデルがこのパートの動画をどのように読み取るか。“AGENTIC” を設定すると、固定レートのフレームサンプリングの代わりに、モデルが検査するセグメントを決定できるようになります。デフォルトの固定レートサンプリングでは省略します。gemini-3.7-flash 以降の Flash モデルでサポートされています。
string
テキストプロンプトまたはコードスニペット。
boolean
このパートがモデルからの思考/推論ステップであることを示します。
string
指定可能な値: user, model
object
生成のためのサンプリング、長さ、および出力の設定です。すべてのフィールドは任意です。以下で default を宣言しているフィールドは省略時にその値が適用され、それ以外はモデル固有の動作にフォールバックします。
object
画像生成の設定
string
生成される画像のアスペクト比
object
任意。生成される画像の画像出力形式です。
integer
任意。出力画像の圧縮品質です。
string
任意。出力を保存する画像形式です。
string
任意。生成される画像のサイズを指定します。サポートされる値は 1K、2K、4K です。指定しない場合、モデルはデフォルト値の 1K を使用します。
integer
レスポンスで生成できる最大トークン数です。トークンは約 4 文字です。100 トークンはおよそ 60~80 語に相当します。範囲: 1665536
`TEXT`, `IMAGE`[]
integer
seed を特定の値に固定すると、モデルは繰り返しのリクエストに対して同じレスポンスを返すよう最善を尽くします。決定論的な出力は保証されません。また、同じ seed 値を使用しても、モデルや temperature などのパラメータ設定を変更すると、レスポンスにばらつきが生じる可能性があります。デフォルトでは、ランダムな seed 値が使用されます。以下のモデルで使用できます: gemini-2.5-flash, gemini-2.5-pro, gemini-2.5-flash-preview-04-1, gemini-2.5-pro-preview-05-0, gemini-2.0-flash-lite-00, gemini-2.0-flash-001
string[]
number
デフォルト:"1"
temperature は、応答生成中のサンプリングに使用されます。これは topP と topK が適用されるときに発生します。temperature はトークン選択におけるランダム性の度合いを制御します。低い temperature は、あまり自由奔放でない、あるいは創造性を必要としないプロンプトに適しており、高い temperature はより多様で創造的な結果につながる可能性があります。temperature が 0 の場合、常に最も確率の高いトークンが選択されます。この場合、特定のプロンプトに対する応答はほぼ確定的ですが、わずかなばらつきが生じる可能性は依然としてあります。モデルが一般的すぎる応答、短すぎる応答を返す場合、またはフォールバック応答を返す場合は、temperature を上げてみてください範囲: 0 から 2形式: 浮動小数点
object
オプション。thinking 機能の設定です。thinking とは、モデルが複雑なタスクをより小さなステップに分解し、より高品質な応答を生成するプロセスです。
boolean
オプション。true の場合、モデルはその思考を応答に含めます。
integer
オプション。モデルの thinking プロセスに割り当てるトークン予算。モデルはこの予算内に収まるよう最善を尽くします。
string
オプション。モデルの thinking レベル。指定可能な値: THINKING_LEVEL_UNSPECIFIEDLOWMEDIUMHIGHMINIMAL
integer
デフォルト:"40"
Top-K は、モデルが出力するトークンを選択する方法を変更します。top-K が 1 の場合、次に選択されるトークンはモデルの語彙内のすべてのトークンの中で最も確率が高いものになります。top-K が 3 の場合、temperature を使用して、確率の高い上位 3 個のトークンの中から次のトークンが選択されます。範囲: 1 から
number
デフォルト:"0.95"
指定した場合、nucleus サンプリングが使用されます。 Top-P は、モデルが出力するトークンを選択する方法を変更します。トークンは、その確率の合計が top-P の値に等しくなるまで、最も確率が高いもの (top-K を参照) から低いものへと選択されます。たとえば、トークン A、B、C の確率がそれぞれ 0.3、0.2、0.1 で top-P の値が 0.5 の場合、モデルは temperature を使用して A または B のいずれかを次のトークンとして選択し、C は候補から除外します。 ランダム性の低い応答には低い値を、ランダム性の高い応答には高い値を指定してください。範囲: 0 から 1形式: 浮動小数点
object[]
安全でないコンテンツをブロックするためのリクエストごとの設定。GenerateContentResponse.candidates に対して適用されます。
string
必須
指定可能な値: HARM_CATEGORY_SEXUALLY_EXPLICITHARM_CATEGORY_HATE_SPEECHHARM_CATEGORY_HARASSMENTHARM_CATEGORY_DANGEROUS_CONTENT
string
必須
指定可能な値: OFFBLOCK_NONEBLOCK_LOW_AND_ABOVEBLOCK_MEDIUM_AND_ABOVEBLOCK_ONLY_HIGH
object
モデルをより良いパフォーマンスへと導くための指示。たとえば、「できるだけ簡潔に回答してください」や「回答に専門用語を使用しないでください」などです。テキスト文字列はトークン上限にカウントされます。systemInstruction の role フィールドは無視され、モデルのパフォーマンスに影響しません。注: parts にはテキストのみを使用し、各 part の content は別々の段落にしてください。
object[]
必須
単一のメッセージを構成する、順序付けられた part のリスト。part ごとに異なる IANA MIME タイプを使用できます。最大トークン数や画像数など入力に関する制限については、Google のモデルページにあるモデル仕様を参照してください。
string
テキストプロンプトまたはコードスニペット。
string
メッセージを作成するエンティティの identity。以下の値がサポートされています。user: メッセージが実在の人物によって送信されたことを示します。通常はユーザーが生成したメッセージです。model: メッセージがモデルによって生成されたことを示します。model の値は、マルチターンの会話中にモデルからのメッセージを会話に挿入するために使用されます。マルチターンでない会話では、このフィールドは空欄または未設定のままにできます。指定可能な値: usermodel
object[]
システムが外部システムとやり取りして、モデルの知識や範囲外のアクションまたは一連のアクションを実行できるようにするコード。Function calling を参照してください。
object[]
string
string
必須
object
関数のパラメータの JSON schema
boolean
true の場合、生成された画像はクラウドストレージにアップロードされ、インラインの base64 データの代わりに署名付き URL として返されます。URL は 24 時間後に失効します。
object
ビデオ入力の場合、Duration 形式でのビデオの開始オフセットと終了オフセット。たとえば、1:00 から始まる 10 秒のクリップを指定するには、“startOffset”: { “seconds”: 60 } と “endOffset”: { “seconds”: 70 } を設定します。このメタデータは、ビデオデータが inlineData または fileData で提示されている場合にのみ指定してください。
object
ビデオタイムライン上の位置に対する再生時間のオフセットを表します。
integer
ナノ秒解像度での符号付き秒の小数部分。小数を含む負の秒の値であっても、nanos の値は非負でなければなりません。範囲: 0 から 999999999
integer
時間幅の符号付き秒数。-315,576,000,000 から +315,576,000,000 まで(両端を含む)でなければなりません。範囲: -315576000000 から 315576000000
object
ビデオタイムライン上の位置に対する再生時間のオフセットを表します。
integer
ナノ秒解像度での符号付き秒の小数部分。小数を含む負の秒の値であっても、nanos の値は非負でなければなりません。範囲: 0 から 999999999
integer
時間幅の符号付き秒数。-315,576,000,000 から +315,576,000,000 まで(両端を含む)でなければなりません。範囲: -315576000000 から 315576000000
Router が GET /v2/models/vertexai/gemini-3-pro-image/openapi.json で提供するスキーマから生成されています。これは、リクエストがプロバイダーに到達する前に Router が呼び出しを検証する対象となる同一のドキュメントです。

出力

object[]
object
object[]
string[]
integer
string
string (date)
形式: date
integer
string
string
object
モデルとの現在の会話のコンテンツ。単一ターンのクエリでは、これは単一のインスタンスです。マルチターンのクエリでは、これは会話履歴と最新のリクエストを含む繰り返しフィールドです。
object[]
必須
object
URI ベースのデータ。
string
URI
string
data フィールドまたは fileUri フィールドで指定されたファイルのメディアタイプ。指定可能な値は次のとおりです。gemini-2.0-flash-lite および gemini-2.0-flash では、オーディオファイルの最大長は 8.4 時間、ビデオファイル(音声なし)の最大長は 1 時間です。詳細については、Gemini のオーディオとビデオの要件を参照してください。テキストファイルは UTF-8 でエンコードする必要があります。テキストファイルの内容はトークン制限にカウントされます。画像の解像度に制限はありません。取り得る値: application/pdfaudio/mpegaudio/mp3audio/wavimage/pngimage/jpegimage/webptext/plainvideo/movvideo/mpegvideo/mp4video/mpgvideo/avivideo/wmvvideo/mpegpsvideo/flvimage/heicimage/heifaudio/flacvideo/webm
object
生のバイト形式のインラインデータ。gemini-2.0-flash-lite および gemini-2.0-flash では、inlineData を使用して最大 3000 枚の画像を指定できます。
string (byte)
プロンプトにインラインで含める画像、PDF、またはビデオの base64 エンコード。メディアをインラインで含める場合は、データのメディアタイプ(mimeType)も指定する必要があります。サイズ制限: 20MB形式: byte
string
data フィールドまたは fileUri フィールドで指定されたファイルのメディアタイプ。指定可能な値は次のとおりです。gemini-2.0-flash-lite および gemini-2.0-flash では、オーディオファイルの最大長は 8.4 時間、ビデオファイル(音声なし)の最大長は 1 時間です。詳細については、Gemini のオーディオとビデオの要件を参照してください。テキストファイルは UTF-8 でエンコードする必要があります。テキストファイルの内容はトークン制限にカウントされます。画像の解像度に制限はありません。取り得る値: application/pdfaudio/mpegaudio/mp3audio/wavimage/pngimage/jpegimage/webptext/plainvideo/movvideo/mpegvideo/mp4video/mpgvideo/avivideo/wmvvideo/mpegpsvideo/flvimage/heicimage/heifaudio/flacvideo/webm
string
モデルがこのパートの動画をどのように読み取るか。“AGENTIC” を設定すると、固定レートのフレームサンプリングの代わりに、モデルが検査するセグメントを決定できるようになります。デフォルトの固定レートサンプリングでは省略します。gemini-3.7-flash 以降の Flash モデルでサポートされています。
string
テキストプロンプトまたはコードスニペット。
boolean
このパートがモデルによる思考/推論ステップであることを示します。
string
取り得る値: usermodel
string
object[]
string
取り得る値: HARM_CATEGORY_SEXUALLY_EXPLICITHARM_CATEGORY_HATE_SPEECHHARM_CATEGORY_HARASSMENTHARM_CATEGORY_DANGEROUS_CONTENT
string
コンテンツが指定された安全性カテゴリに違反する確率取り得る値: NEGLIGIBLELOWMEDIUMHIGHUNKNOWN
string
レスポンスが作成されたタイムスタンプ。
string
レスポンスの生成に使用されたモデルのバージョン。
object
string
string
object[]
string
取り得る値: HARM_CATEGORY_SEXUALLY_EXPLICITHARM_CATEGORY_HATE_SPEECHHARM_CATEGORY_HARASSMENTHARM_CATEGORY_DANGEROUS_CONTENT
string
コンテンツが指定された安全性カテゴリに違反する確率Possible values: NEGLIGIBLE, LOW, MEDIUM, HIGH, UNKNOWN
string
レスポンスの一意の識別子。
object
integer
出力のみ。入力内のキャッシュ部分(キャッシュされたコンテンツ)のトークン数。
integer
レスポンス内のトークン数。
object[]
モダリティ別の候補トークンの内訳。
string
入力または出力コンテンツのモダリティの種類。Possible values: MODALITY_UNSPECIFIED, TEXT, IMAGE, VIDEO, AUDIO, DOCUMENT
integer
指定されたモダリティのトークン数。
integer
リクエスト内のトークン数。cachedContent が設定されている場合でも、これは有効なプロンプトの合計サイズであり、キャッシュされたコンテンツ内のトークン数が含まれます。
object[]
モダリティ別のプロンプトトークンの内訳。
string
入力または出力コンテンツのモダリティの種類。Possible values: MODALITY_UNSPECIFIED, TEXT, IMAGE, VIDEO, AUDIO, DOCUMENT
integer
指定されたモダリティのトークン数。
integer
思考出力に含まれるトークン数。
integer
ツール使用プロンプトに含まれるトークン数。
object[]
モダリティごとのツール使用プロンプトトークンの内訳。
string
入力または出力コンテンツのモダリティの種類。指定可能な値: MODALITY_UNSPECIFIED, TEXT, IMAGE, VIDEO, AUDIO, DOCUMENT
integer
指定されたモダリティのトークン数。
integer
トークンの合計数(プロンプト + 候補)。
string
リクエストに使用されたトラフィックタイプ(例: PROVISIONED_THROUGHPUT)。

入力

出力

デフォルトでは、生成済みの画像パートには inlineData.data に base64 バイト列が、inlineData.mimeType にメディアタイプが含まれます。バイト列をデコードしてファイルに保存してください。uploadImagesToStorage: true を指定した場合、アップロードされた画像では代わりに fileData.fileUri に署名付き URL、fileData.mimeType にメディアタイプが入ります。これらの画像は作成から 24 時間後に URL が期限切れになるため、それより前にダウンロードしてください。アップロードに失敗した画像はインラインのまま残るので、各パートに inlineData または fileData が含まれているかを確認してください。テキストのパートが含まれることもあり、画像が最初のパートであるとは限りません。

出荷前の確認

SDK は Idempotency-Key を生成し、自動リトライで再利用します。手動リトライでは元のキーを再利用してください。Router は最大 10 分間接続を保持できます。 リクエストが失敗すると、Router は理由を示す X-Comfy-Error-Type レスポンスヘッダーを送信します。422 は、プロバイダーを呼び出す前に Router が入力を拒否したことを意味します。生成されたアセットは 結果 URL の有効期限 があるため、早めにダウンロードしてください。

ヘッダー

認証、冪等性、リクエスト ID、エラー分類、リトライ間隔、支出上限。

Router API の利用

モデルの検出、バリデーションエラー、リトライ、課金。

制限事項

Router が現在対応していないことと、代替手段。