クイックスタート
あなたの Comfy ワークスペース でキーを作成し、COMFY_API_KEY としてエクスポートします。Python と TypeScript のスニペットは Comfy SDK (pip install comfy-sdk および npm install @comfyorg/sdk) を使用します。cURL スニペットは raw HTTP 経由で同じ呼び出しを行います。
呼び出したいモデルを選択してください。モデルは 1 つのリクエストとレスポンスの形状を共有しており、以下で一度だけ説明します。
- Gemini 3.1 Pro
- Gemini 3.5 Flash
- Gemini 2.5 Pro
- Gemini 2.5 Flash
モデル ID:
vertexai/gemini-3.1-pro-previewエンドポイント: POST https://api.comfy.org/v2/models/vertexai/gemini-3.1-pro-preview- 結果を待つ
- キューに送信して後で収集する
同じ本文を
POST https://api.comfy.org/v2/models/vertexai/gemini-3.1-pro-preview/requests に送信します。Router は実行が受け付けられるとすぐに 201 と request_id を返し、結果は準備が整い次第、このプロセスからでも別のプロセスからでも収集できます。キュー配信では、ステータス、キャンセル、収集について順を追って説明します。スキーマ
入力
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/webmobject
生バイトのインラインデータ。gemini-2.0-flash-lite および gemini-2.0-flash では、inlineData を使用して最大 3000 枚の画像を指定できます。
string (byte)
プロンプトにインラインで含める画像、PDF、またはビデオの base64 エンコーディング。メディアをインラインで含める場合は、データのメディアタイプ(mimeType)も指定する必要があります。サイズ制限: 20MB形式:
bytestring
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/webmstring
モデルがこのパートのビデオをどのように読み取るか。
"AGENTIC" を設定すると、固定レートのフレームサンプリングではなく、モデルが検査するセグメントを判断します。省略すると、デフォルトの固定レートサンプリングになります。gemini-3.7-flash 以降の Flash モデルでサポートされています。string
テキストプロンプトまたはコードスニペット。
boolean
このパートがモデルからの思考/推論ステップであることを示します。
string
指定可能な値:
user, modelobject
生成のサンプリング、長さ、出力の設定。すべてのフィールドは任意です。以下で
default を宣言しているフィールドは省略時にその値が適用され、それ以外はモデル自身の動作にフォールバックします。object
画像生成の設定
string
生成された画像のアスペクト比
object
任意。生成された画像の画像出力形式。
integer
任意。出力画像の圧縮品質。
string
任意。出力を保存する画像形式(Vertex AI のパス、つまり Comfy 独自の認証情報で処理されるリクエスト、および GCP サービスアカウントで認証された BYOK リクエストの場合)。そこで受け付けられる値は
image/png と image/jpeg で、大文字小文字を区別せずに照合され、リクエストが転送される前に小文字に正規化されます。それ以外の値は、このフィールド名を示す 400 で拒否されます。省略時は image/png がデフォルトです。Google AI Studio の APIキーで認証された BYOK リクエストは例外です。そのアップストリームにはそのようなプロパティがなく、存在する場合は呼び出し全体を拒否するため、このフィールドは尊重も拒否もされずにリクエストから削除され、出力形式は AI Studio が選択したものになります。どのパスでも、送信した値を前提とせず、返されたレスポンスのパート(inlineData.mimeType、uploadImagesToStorage が設定されている場合は fileData.mimeType)からメディアタイプを読み取ってください。string
任意。生成された画像のサイズを指定します。サポートされる値は 1K、2K、4K です。指定しない場合、モデルはデフォルト値 1K を使用します。
integer
レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンはおおよそ 60~80 語に相当します。範囲:
16 ~ 65536`TEXT`, `IMAGE`[]
integer
シードが特定の値に固定されている場合、モデルは繰り返しのリクエストに対して同じ応答を返すよう最善を尽くします。決定論的な出力は保証されません。また、temperature などのモデルやパラメータ設定を変更すると、同じシード値を使用していても応答にばらつきが生じることがあります。デフォルトでは、ランダムなシード値が使用されます。以下のモデルで利用可能です: 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形式: floatobject
オプション。thinking 機能の設定です。thinking とは、モデルが複雑なタスクをより小さなステップに分解して、より高品質な応答を生成するプロセスです。
boolean
オプション。true の場合、モデルは自身の思考を応答に含めます。
integer
オプション。モデルの thinking プロセスに割り当てるトークン予算です。モデルはこの予算内に収まるよう最善を尽くします。
string
オプション。モデルの thinking レベルです。指定可能な値:
THINKING_LEVEL_UNSPECIFIED, LOW, MEDIUM, HIGH, MINIMALinteger
デフォルト:"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形式: floatobject[]
安全でないコンテンツをブロックするためのリクエストごとの設定です。GenerateContentResponse.candidates に適用されます。
string
必須
指定可能な値:
HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_HARASSMENT, HARM_CATEGORY_DANGEROUS_CONTENTstring
必須
指定可能な値:
OFF, BLOCK_NONE, BLOCK_LOW_AND_ABOVE, BLOCK_MEDIUM_AND_ABOVE, BLOCK_ONLY_HIGHobject
モデルをより良いパフォーマンスへと導くための指示です。たとえば、「できるだけ簡潔に答えてください」や「応答に専門用語を使わないでください」などです。テキスト文字列はトークン上限にカウントされます。systemInstruction の role フィールドは無視され、モデルのパフォーマンスには影響しません。注: parts にはテキストのみを使用し、各 part の content は別々の段落にしてください。
object[]
必須
1 つのメッセージを構成する、順序付けられた parts のリストです。part ごとに異なる IANA MIME タイプを持つ場合があります。最大トークン数や画像数など入力の制限については、Google のモデルページにあるモデル仕様を参照してください。
string
テキストプロンプトまたはコードスニペット。
string
メッセージを作成するエンティティの識別情報です。以下の値がサポートされています。user: メッセージが実在の人物によって送信されたことを示します。通常はユーザーが生成したメッセージです。model: メッセージがモデルによって生成されたことを示します。model の値は、マルチターンの会話中にモデルからのメッセージを会話に挿入するために使用されます。マルチターンでない会話では、このフィールドは空白のままにするか、未設定にすることができます。指定可能な値:
user, modelobject[]
システムが、モデルの知識や範囲外のアクションまたは一連のアクションを実行するために外部システムとやり取りできるようにするコードです。Function calling を参照してください。
object[]
string
string
必須
object
関数パラメータの JSON スキーマ
boolean
true の場合、生成済みの画像はクラウドストレージにアップロードされ、インラインの base64 データではなく署名付き URL として返されます。URL は 24 時間後に有効期限が切れます。
object
ビデオ入力の場合、ビデオの開始オフセットと終了オフセットを Duration 形式で指定します。たとえば、1:00 から始まる 10 秒のクリップを指定するには、“startOffset”: { “seconds”: 60 } および “endOffset”: { “seconds”: 70 } を設定します。メタデータは、ビデオデータが inlineData または fileData で提示されている場合にのみ指定してください。
object
ビデオのタイムライン位置に対する再生時間のオフセットを表します。
integer
ナノ秒解像度での符号付き秒の小数部。小数部を持つ負の秒の値であっても、nanos の値は非負でなければなりません。Range:
0 to 999999999integer
時間幅の符号付き秒。 -315,576,000,000 から +315,576,000,000 まで(両端を含む)の範囲でなければなりません。Range:
-315576000000 to 315576000000object
ビデオのタイムライン位置に対する再生時間のオフセットを表します。
integer
ナノ秒解像度での符号付き秒の小数部。小数部を持つ負の秒の値であっても、nanos の値は非負でなければなりません。Range:
0 to 999999999integer
時間幅の符号付き秒。 -315,576,000,000 から +315,576,000,000 まで(両端を含む)の範囲でなければなりません。Range:
-315576000000 to 315576000000GET /v2/models/vertexai/gemini-3.1-pro-preview/openapi.json で提供するスキーマから生成されています。これは、リクエストがプロバイダーに到達する前に Router が呼び出しを検証する対象となる、同じドキュメントです。
出力
object[]
object
object[]
string[]
integer
string
string (date)
形式:
dateinteger
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/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/webmobject
生のバイトによるインラインデータ。gemini-2.0-flash-lite と gemini-2.0-flash では、inlineData を使用して最大 3000 枚の画像を指定できます。
string (byte)
プロンプトにインラインで含める画像、PDF、またはビデオの base64 エンコーディングです。メディアをインラインで含める場合は、そのデータのメディアタイプ(mimeType)も指定する必要があります。サイズ制限: 20MB形式:
bytestring
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/webmstring
モデルがこのパートのビデオをどのように読み取るかを指定します。固定レートのフレームサンプリングではなく、検査するセグメントをモデルに判断させるには “AGENTIC” を設定します。省略した場合は、デフォルトの固定レートサンプリングが使用されます。gemini-3.7-flash 以降の Flash モデルでサポートされています。
string
テキストプロンプトまたはコードスニペット。
boolean
このパートがモデルによる思考/推論のステップであることを示します。
string
指定できる値:
user, modelstring
object[]
string
指定できる値:
HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_HARASSMENT, HARM_CATEGORY_DANGEROUS_CONTENTstring
コンテンツが指定された安全性カテゴリに違反している確率指定できる値:
NEGLIGIBLE, LOW, MEDIUM, HIGH, UNKNOWNstring
レスポンスが作成されたタイムスタンプ。
string
レスポンスの生成に使用されたモデルのバージョン。
object
string
string
object[]
string
指定可能な値:
HARM_CATEGORY_SEXUALLY_EXPLICIT、HARM_CATEGORY_HATE_SPEECH、HARM_CATEGORY_HARASSMENT、HARM_CATEGORY_DANGEROUS_CONTENTstring
コンテンツが指定された安全性カテゴリに違反する確率指定可能な値:
NEGLIGIBLE、LOW、MEDIUM、HIGH、UNKNOWNstring
応答の一意の識別子。
object
integer
出力専用。入力内のキャッシュされた部分(キャッシュされたコンテンツ)のトークン数。
integer
応答内のトークン数。
object[]
モダリティごとの候補トークンの内訳。
string
入力または出力コンテンツのモダリティの種類。指定可能な値:
MODALITY_UNSPECIFIED、TEXT、IMAGE、VIDEO、AUDIO、DOCUMENTinteger
指定されたモダリティのトークン数。
integer
リクエスト内のトークン数。cachedContent が設定されている場合でも、これは有効なプロンプトの合計サイズであり、キャッシュされたコンテンツ内のトークン数も含まれます。
object[]
モダリティごとのプロンプトトークンの内訳。
string
入力または出力コンテンツのモダリティの種類。指定可能な値:
MODALITY_UNSPECIFIED、TEXT、IMAGE、VIDEO、AUDIO、DOCUMENTinteger
指定されたモダリティのトークン数。
integer
thoughts 出力に含まれるトークン数。
integer
ツール使用プロンプトに含まれるトークン数。
object[]
モダリティごとのツール使用プロンプトトークンの内訳。
string
入力または出力コンテンツのモダリティの種類。指定可能な値:
MODALITY_UNSPECIFIED、TEXT、IMAGE、VIDEO、AUDIO、DOCUMENTinteger
指定されたモダリティのトークン数。
integer
トークンの合計数(プロンプト + 候補)。
string
リクエストに使用されたトラフィックタイプ(例: PROVISIONED_THROUGHPUT)。
例
入力
出力
出荷前の確認
SDK はIdempotency-Key を生成し、自動リトライで再利用します。手動リトライでは元のキーを再利用してください。Router は最大 10 分間接続を保持できます。
リクエストが失敗すると、Router は理由を説明する X-Comfy-Error-Type レスポンスヘッダーを送信します。422 は、プロバイダーを呼び出す前に Router が入力を拒否したことを意味し、413 はリクエスト本文が Router の受け入れ可能なサイズを超えていたことを意味します。生成されたアセットは 結果 URL の有効期限 があるため、早めにダウンロードしてください。
上記のフィールド説明に記載されているサイズ制限は、プロバイダーの仕様から引用した、そのフィールドに対するプロバイダー自身の上限です。Router はリクエスト本文全体に対して別の上限を適用し、base64 エンコードされたメディアもこれにカウントされます。リクエスト本文のサイズ を参照してください。
このページは、Comfy Router 経由で呼び出す 1 つのパートナーモデルについて説明しています。同じ comfy-sdk / @comfyorg/sdk パッケージには、Comfy Cloud 上で ComfyUI のワークフローグラフ全体を実行するための 2 つ目のクライアントも含まれています: Comfy(api_key=...) / new Comfy({ apiKey })、および client.workflows、client.assets、client.jobs。Comfy SDKs を参照してください。
ヘッダー
認証、冪等性、リクエスト ID、エラー分類、リトライ間隔、支出上限。
Router API の利用
モデルの検出、バリデーションエラー、リトライ、課金。
制限事項
Router が現在対応していないことと、代替手段。