> ## Documentation Index
> Fetch the complete documentation index at: https://dripart-matt-router-pricing-pika-and-guard.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Comfy RouterでWan 3.0 Videoを使用する

> Comfy Router経由でHTTPでwan/wan3.0-videoを呼び出すためのPython、TypeScript、cURLスニペット、およびリクエストフィールドと結果の形状

Wan 3.0 Video の API リファレンスです。Wan 3.0 Video は、プロンプトのみから、または最初と最後のフレーム、参照画像、ビデオ、オーディオを含むメディアリストから生成します。これらはプロンプト内で Image 1、Video 1、Audio 1 として参照します。

**入力：** テキスト, 画像, ビデオ, オーディオ · **出力：** ビデオ + オーディオ

## クイックスタート

[ご利用の Comfy ワークスペース](https://platform.comfy.org/profile/api-keys?onboarding=router)でキーを作成し、`COMFY_API_KEY` としてエクスポートします。Python と TypeScript のスニペットは Comfy SDK（`pip install comfy-sdk` および `npm install @comfyorg/sdk`）を使用しています。cURL のスニペットは、同じ呼び出しを raw HTTP で実行するものです。

**モデル ID:** `wan/wan3.0-video`

**エンドポイント:** `POST https://api.comfy.org/v2/models/wan/wan3.0-video`

<Tabs defaultTabIndex={1}>
  <Tab title="結果を待つ">
    <CodeGroup>
      ```python Python theme={null}
      import asyncio
      from comfy_sdk import AsyncComfy

      # 環境変数から COMFY_API_KEY を読み取ります。
      # SDK は自動的に冪等性キーを作成し、自動リトライのために再利用します。
      async def main():
          async with AsyncComfy() as client:
              result = await client.models.run(
                  "wan/wan3.0-video",
                  {
                      "input": {
                          "prompt": "the robot lowers its raised arm and steps toward the camera, the flat orange backdrop holds steady",
                          "media": [
                              {
                                  "type": "first_frame",
                                  "url": "https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/input/pink_robot_front.png",
                              },
                          ],
                      },
                      "parameters": {
                          "resolution": "720P",
                          "duration": 5,
                      },
                  },
              )

          print("video:", result["output"]["video_url"])

      asyncio.run(main())
      ```

      ```typescript TypeScript theme={null}
      import { comfy } from "@comfyorg/sdk";

      // 環境変数から COMFY_API_KEY を読み取ります。
      // SDK は自動的に冪等性キーを作成し、自動リトライのために再利用します。
      type Result = { output: { video_url: string } };
      const result = await comfy.models.run<Result>("wan/wan3.0-video", {
        input: {
          prompt: "the robot lowers its raised arm and steps toward the camera, the flat orange backdrop holds steady",
          media: [
            {
              type: "first_frame",
              url: "https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/input/pink_robot_front.png",
            },
          ],
        },
        parameters: {
          resolution: "720P",
          duration: 5,
        },
      });
      if (result.kind !== "json") throw new Error("expected a JSON result");

      console.log("video:", result.data.output.video_url);
      ```

      ```bash cURL theme={null}
      curl https://api.comfy.org/v2/models/wan/wan3.0-video \
        -H "X-API-Key: $COMFY_API_KEY" \
        -H "Idempotency-Key: $(uuidgen)" \
        -H "Content-Type: application/json" \
        -d "{\"input\": {\"prompt\":\"the robot lowers its raised arm and steps toward the camera, the flat orange backdrop holds steady\",\"media\":[{\"type\":\"first_frame\",\"url\":\"https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/input/pink_robot_front.png\"}]}, \"parameters\": {\"resolution\":\"720P\",\"duration\":5}}"
      ```
    </CodeGroup>
  </Tab>

  <Tab title="キューに送信して後で収集">
    同じボディを `POST https://api.comfy.org/v2/models/wan/wan3.0-video/requests` に送信します。Router は実行が受け付けられるとすぐに `201` と `request_id` を返し、結果は準備ができた時点で、このプロセスまたは別のプロセスから収集されます。[キュー配信](/ja/development/comfy-router/queue)で、ステータス、キャンセル、収集の流れを説明します。

    <CodeGroup>
      ```python Python theme={null}
      import asyncio
      from comfy_sdk import AsyncComfy

      # 環境変数から COMFY_API_KEY を読み取ります。
      # 各 submit() 呼び出しは独自の Idempotency-Key を発行し、自動リトライでもそれを再利用します。
      async def main():
          async with AsyncComfy() as client:
              handle = await client.models.submit(
                  "wan/wan3.0-video",
                  {
                      "input": {
                          "prompt": "the robot lowers its raised arm and steps toward the camera, the flat orange backdrop holds steady",
                          "media": [
                              {
                                  "type": "first_frame",
                                  "url": "https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/input/pink_robot_front.png",
                              },
                          ],
                      },
                      "parameters": {
                          "resolution": "720P",
                          "duration": 5,
                      },
                  },
              )
              print("request_id:", handle.request_id)  # モデル ID と合わせて、別のプロセスが必要とする情報のすべて

              # リクエストが完了するまでポーリングし、サーバーが指定する Retry-After のあいだ待機します。
              async for update in handle.iter_events():
                  print(update.status, update.queue_position)

              # プロバイダー自身のペイロードで、models.run() が返す値と同じものです。
              # 失敗またはキャンセル済みのリクエストは、ここで型付きの Router エラーを発生させます。
              result = await handle.get()

          print("video:", result["output"]["video_url"])

      asyncio.run(main())
      ```

      ```typescript TypeScript theme={null}
      import { comfy } from "@comfyorg/sdk";

      // 環境変数から COMFY_API_KEY を読み取ります。
      // 各 submit() 呼び出しは独自の Idempotency-Key を発行し、自動リトライでもそれを再利用します。
      type Result = { output: { video_url: string } };
      const handle = await comfy.models.submit<Result>("wan/wan3.0-video", {
        input: {
          prompt: "the robot lowers its raised arm and steps toward the camera, the flat orange backdrop holds steady",
          media: [
            {
              type: "first_frame",
              url: "https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/input/pink_robot_front.png",
            },
          ],
        },
        parameters: {
          resolution: "720P",
          duration: 5,
        },
      });
      console.log("requestId:", handle.requestId); // モデル ID と合わせて、別のプロセスが必要とする情報のすべて

      // リクエストが完了するまでポーリングし、サーバーが指定する Retry-After のあいだ待機します。
      for await (const update of handle.events()) {
        console.log(update.status, update.queuePosition);
      }

      // models.run() が返すのと同じ結果です。失敗またはキャンセル済みのリクエストは、ここで reject されます。
      const result = await handle.get();
      if (result.kind !== "json") throw new Error("expected a JSON result");

      console.log("video:", result.data.output.video_url);
      ```

      ```bash cURL theme={null}
      # 1. 送信。Router は 201 とともに request_id、status_url、response_url、cancel_url を返します。
      curl https://api.comfy.org/v2/models/wan/wan3.0-video/requests \
        -H "X-API-Key: $COMFY_API_KEY" \
        -H "Idempotency-Key: $(uuidgen)" \
        -H "Content-Type: application/json" \
        -d "{\"input\": {\"prompt\":\"the robot lowers its raised arm and steps toward the camera, the flat orange backdrop holds steady\",\"media\":[{\"type\":\"first_frame\",\"url\":\"https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/input/pink_robot_front.png\"}]}, \"parameters\": {\"resolution\":\"720P\",\"duration\":5}}"

      # 2. ステータスが COMPLETED になるまでポーリングし、各レスポンスが指定する Retry-After 秒のあいだ待機します。
      REQUEST_ID="<request_id from the 201 body>"
      curl -i https://api.comfy.org/v2/models/wan/wan3.0-video/requests/$REQUEST_ID/status \
        -H "X-API-Key: $COMFY_API_KEY"

      # 3. 収集。実行中は 202 とステータスボディ、完了後は 200 とモデル本来の出力が返ります。
      curl https://api.comfy.org/v2/models/wan/wan3.0-video/requests/$REQUEST_ID \
        -H "X-API-Key: $COMFY_API_KEY"
      ```
    </CodeGroup>
  </Tab>
</Tabs>

## サービングプロバイダー

このモデルは、リクエストで別のプロバイダーを指定しない限り、Comfy Router が直接サービングします。以下のプロバイダーも、同じエンドポイントで同じモデル ID を使用してこのモデルをサービングしており、`model_provider` クエリパラメータで選択します。

* **Comfy** (デフォルト): `POST https://api.comfy.org/v2/models/wan/wan3.0-video`
* **Higgsfield**、`higgsfield/higgsfield-wan-3` として: `POST https://api.comfy.org/v2/models/wan/wan3.0-video?model_provider=higgsfield`

`strict_mode` のデフォルトは false であるため、Router はこのページに記載されているネイティブのリクエストボディをプロバイダー独自のスキーマに変換し、レスポンスを元の形式に戻します。API リファレンスの [`model_provider`、`strict_mode`、`fallback_provider`](/ja/development/comfy-router/reference#post-v2modelsprovidermodel) を参照し、この方法でルーティングされるすべてのモデルについては[サービングプロバイダー](/ja/development/comfy-router/providers)を参照してください。

## スキーマ

### 入力

<ParamField body="input" type="object" required>
  プロンプト文などの基本情報を入力します。
</ParamField>

<ParamField body="input.audio_url" type="string">
  オーディオファイルのダウンロードURL。対応形式: mp3 および wav。reference\_video\_urls とは併用できません。
</ParamField>

<ParamField body="input.img_url" type="string">
  先頭フレームの画像URL、または Base64 エンコードされたデータ。wan2.5-i2v-preview および wan2.6-i2v モデルでは必須です。happyhorse-1.x の i2v 表記では、先頭フレームをここでは受け取りません。先頭フレームは type が first\_frame の media 要素として受け取ります（後述の media を参照）。また、wan2.6-i2v では成功する img\_url のボディも、happyhorse-1.0-i2v と happyhorse-1.1-i2v ではプロバイダーによって拒否されます。さらに wan2.7/wan3.0 の表記も、参照アセットは同様に media で受け取ります。画像形式: JPEG、JPG、PNG、BMP、WEBP。解像度: 360～2000 ピクセル。ファイルサイズ: 最大 10MB。
</ParamField>

<ParamField body="input.media" type="object[]">
  メディアアセットのリスト。動画生成のための参照素材（画像、オーディオ、ビデオ）を指定します。各要素は type と url フィールドを持ちます。このフィールドは、このコンポーネントから提供されるすべてのモデルで共通ですが、あるモデルがどの type の値を受け付けるか、またそのモデルが画像やビデオの入力を img\_url や reference\_video\_urls ではなくここで受け取るかどうかは、モデルごとに異なります。モデルごとの対応する type の値:

  * wan2.7-i2v: first\_frame、last\_frame、driving\_audio、first\_clip。first\_frame と last\_frame: JPEG/JPG/PNG/BMP/WEBP、1辺 240～8000 ピクセル、アスペクト比 1:8～8:1、最大 20MB、公開 URL または data:\{MIME\_type};base64,... URL。driving\_audio（WAV/MP3、2～30 秒、最大 15MB）と first\_clip（MP4/MOV、2～10 秒、1辺 240～4096 ピクセル、最大 100MB）: 公開 HTTP/HTTPS URL。インラインの data: URL は受け付けられません。
  * wan2.7-r2v: first\_frame（任意、最大 1）、reference\_image、reference\_video。reference\_image または reference\_video のうち少なくとも 1 つが必須で、reference\_image と reference\_video の合計は最大 5 です。first\_frame と reference\_image: JPEG/JPG/PNG/BMP/WEBP（アルファチャンネルなし）、1辺 240～8000 ピクセル、アスペクト比 1:8～8:1、最大 20MB、公開 URL または data:\{MIME\_type};base64,... URL。reference\_video: 公開 HTTP/HTTPS URL。インラインの data: URL は受け付けられません。
  * wan2.7-videoedit: video（必ず 1 つ、編集対象のクリップ: MP4/MOV、2～10 秒、1辺 240～4096 ピクセル、最大 100MB、公開 HTTP/HTTPS URL。インラインの data: URL は受け付けられません）に加えて、任意で 0～4 つの reference\_image（JPEG/JPG/PNG/BMP/WEBP、1辺 240～8000 ピクセル、アスペクト比 1:8～8:1、最大 20MB、公開 URL または data:\{MIME\_type};base64,... URL）。
  * wan3.0-video、wan3.0-video-prime: first\_frame（最大 1）、last\_frame（最大 1）、reference\_image（最大 10）、reference\_video（最大 5 クリップ、合計再生時間 \<= 15 秒）、reference\_audio（最大 5 クリップ、合計再生時間 \<= 15 秒）、file（最大 1、link とは併用不可）、link（最大 1、file とは併用不可）。reference\_\*/file/link のタイプと first\_frame/last\_frame のタイプは、同じリクエスト内では同時に使用できません。配列の順序が、プロンプト内でのアセットの参照順（Image 1、Video 1、Audio 1、...）を定義します。first\_frame、last\_frame、reference\_image: JPEG/JPG/PNG/BMP/WEBP、1辺 240～8000 ピクセル、アスペクト比は最大 8:1、最大 20MB、公開 URL または data:\{MIME\_type};base64,... URL。reference\_video、reference\_audio、file、link: 公開 HTTP/HTTPS URL。インラインの data: URL は受け付けられません。
  * happyhorse-1.0-i2v、happyhorse-1.1-i2v: first\_frame のみ、必ず 1 つ。これらの表記では先頭フレームをここで受け取り、img\_url では受け取りません。少なくとも 300x300 ピクセル、アスペクト比 1:2.5～2.5:1、JPEG/JPG/PNG/WEBP、最大 20MB、公開 URL または data:\{MIME\_type};base64,... URL。
  * happyhorse-1.0-r2v、happyhorse-1.1-r2v: reference\_image のみ、1～9 個。これがこのモデル唯一の参照入力です。最短辺が少なくとも 400 ピクセル、JPEG/JPG/PNG/WEBP、最大 20MB、公開 URL または data:\{MIME\_type};base64,... URL。reference\_video はこの操作の入力タイプではありません。
  * happyhorse-1.0-video-edit: video（必ず 1 つ、編集対象のクリップ: MP4/MOV、3～60 秒、長辺が最大 4096 ピクセル、短辺が少なくとも 360 ピクセル、アスペクト比 1:2.5～2.5:1、最大 100MB、公開 HTTP/HTTPS URL。インラインの data: URL は受け付けられません）に加えて、任意で 0～5 つの reference\_image（JPEG/JPG/PNG/WEBP、少なくとも 300x300 ピクセル、アスペクト比 1:2.5～2.5:1、最大 20MB、公開 URL または data:\{MIME\_type};base64,... URL）。
  * happyhorse-1.0-t2v、happyhorse-1.1-t2v、wan2.7-t2v、wan2.6-t2v、wan2.5-t2v-preview: テキストから動画への操作。パートナーのリファレンスにはメディア入力の記載がないため、このフィールドは未設定のままにしてください。
  * wan2.5-i2v-preview、wan2.6-i2v、wan2.6-r2v: このコンポーネントは、これらの表記に対する media の語彙を列挙していません。wan2.5-i2v-preview と wan2.6-i2v は先頭フレームを img\_url で受け取り、wan2.6-r2v は参照クリップを reference\_video\_urls で受け取ります。

  上記のモデルごとの個数はパートナーの制約であり、このスキーマの制約ではありません。media には minItems/maxItems が宣言されていません。許可されるタイプとその上限がモデルごとに異なるためです。スキーマが受け入れても、プロバイダーが受け入れるとは限りません。逆に、上記のアセットごとの「最大 20MB」という数値は、画像入力に対する上限であり、インラインで送信できる唯一の入力でもあります。これらはパートナーが最終的に受け取るアセットに対するパートナーの上限であり、アセットが公開 URL である場合はそのバイト列が Comfy を経由しないため、記載どおりに適用されます。インラインの data:\{MIME\_type};base64,... URL は Comfy を経由するため、転送上の上限にも直面します。Comfy Router の POST ボディは合計 100 MiB に制限され、それを超えると 413 が返されます。また base64 はペイロードを約 4/3 に膨らませるため、約 75 MB を超える単一のインラインアセットは、ここに記載したパートナーのルールに到達する前に拒否されます。そのサイズでは、単一のアセットはパートナー自身の20MB の上限はインラインで問題なく収まるため、1つのアセットについてはパートナーのルールが制約となります。複数のアセットにまたがる場合は転送の上限が制約となります。100 MiB の Router 上限は各要素ではなくリクエスト全体を制限するためです。これらの上限に近いものはすべてパブリック URL として送信してください。
</ParamField>

<ParamField body="input.media[].type" type="string" required>
  メディアアセットのタイプ

  指定可能な値: `first_frame`, `last_frame`, `driving_audio`, `first_clip`, `reference_image`, `reference_video`, `reference_audio`, `video`, `file`, `link`
</ParamField>

<ParamField body="input.media[].url" type="string" required>
  メディアファイルの URL: パブリックな HTTP/HTTPS URL、または（上記の `media` の説明でモデルごとに挙げている IMAGE 入力、つまり wan2.7-i2v の first\_frame と last\_frame、wan2.7-r2v の first\_frame と reference\_image、wan2.7-videoedit の reference\_image、wan3.0-video と wan3.0-video-prime の first\_frame、last\_frame、reference\_image、happyhorse-1.0-i2v と happyhorse-1.1-i2v の first\_frame、happyhorse-1.0-r2v と happyhorse-1.1-r2v の reference\_image、happyhorse-1.0-video-edit の reference\_image に限り）インラインの `data:{MIME_type};base64,...` URL。これらのモデルのビデオ、オーディオ、ファイル、リンクのいずれの入力も、インラインの data: URL を受け付けません。パートナー自身のアップロードサービスが発行する `oss://dashscope-instant` の一時 URL、または（wan2.7-videoedit では）Asset Center の asset\_id は、それをアップロードした Alibaba Cloud アカウントに対してのみ解決されます。Comfy は自身のキーでモデルを呼び出し、アップロード経路を公開していないため、呼び出し元自身の oss\:// URL や asset\_id はサポートされる入力ではありません。このフィールドは URL スキームを検証しないため、そのような値はここで拒否されず、そのままパートナーへ転送されます。モデルごとのサイズとピクセルの制限、およびインラインのペイロードを全体として制限する 100 MiB の Router リクエストボディ上限については、`media` の説明を参照してください。
</ParamField>

<ParamField body="input.negative_prompt" type="string">
  逆プロンプトの語句は、ビデオ画面に表示したくないコンテンツを記述するために使用します
</ParamField>

<ParamField body="input.prompt" type="string">
  テキストプロンプトの語句。中国語と英語に対応し、長さは 800 文字以内です
  （wan3.0-video では最大 20,000 文字。制限を超えたコンテンツは切り捨てられます）。
  複数の参照ビデオを使う wan2.6-r2v では、参照ビデオの順序に対応する被写体を
  'character1'、'character2' などで指定します。例: "Character1 sings on the roadside, Character2 dances beside it"
  wan3.0-video の参照モードでは、media 配列内の対応する順序でメディアアセットを
  'Image 1'、'Video 1'、'Audio 1' などで指定します。
</ParamField>

<ParamField body="input.reference_video_urls" type="string[]">
  wan2.6-r2v モデル専用の参照ビデオ URL。1〜3 本のビデオ URL の配列。
  入力の制限:

  * 形式: mp4, mov
  * 本数: ビデオ 1〜3 本
  * 1 本のビデオの長さ: 2〜30 秒
  * 単一ファイルサイズ: 最大 30MB
  * audio\_url と併用できません
    参照の再生時間: ビデオ 1 本の場合は最大 5 秒、2 本の場合は各最大 2.5 秒、3 本の場合は比例して短くなります。
    課金: 実際に使用した参照の再生時間に基づきます。
</ParamField>

<ParamField body="input.template" type="string">
  ビデオエフェクトのテンプレート名。任意。現在サポートされているのは squish、flying、carousel です。使用した場合、prompt パラメータは無視されます。
</ParamField>

<ParamField body="model" type="string">
  呼び出すモデルの ID。このコンポーネントでは制約されません。Comfy Router が `POST /v2/models/wan/{model}` の `{model}` パスセグメントから設定するため、Router の呼び出し元は省略します。`POST /proxy/wan/api/v1/services/aigc/video-generation/video-synthesis` への直接の v1 呼び出しでは必ず指定する必要があり、受け付けられる表記の列挙はその操作自身のコンポーネント `WanVideoGenerationRequest` にあります。
</ParamField>

<ParamField body="parameters" type="object">
  ビデオ処理パラメータ
</ParamField>

<ParamField body="parameters.audio" type="boolean" default="true">
  ビデオにオーディオを追加するかどうか。wan3.0-video と wan3.0-video-prime でのみサポートされます。他の wan モデルについて、プロバイダーはそのような切り替えをドキュメント化していません。
</ParamField>

<ParamField body="parameters.audio_setting" type="string" default="&#x22;auto&#x22;">
  wan2.7-videoedit モデルのビデオオーディオ設定。

  * auto（デフォルト）: モデルがプロンプトの内容に基づいてインテリジェントに判断します
  * origin: 入力ビデオのオリジナルオーディオを強制的に保持します

    指定可能な値: `auto`, `origin`
</ParamField>

<ParamField body="parameters.duration" type="integer" default="5">
  生成されるビデオの再生時間（秒）:

  * wan2.5 モデル: 5 または 10 秒
  * wan2.6-t2v、wan2.6-i2v: 5、10、または 15 秒
  * wan2.6-r2v: 5 または 10 秒のみ（15 秒は非サポート）
  * wan2.7-i2v、wan2.7-t2v: \[2, 15] の整数
  * wan2.7-r2v、wan2.7-videoedit: \[2, 10] の整数
  * wan3.0-video: ビデオ入力なしの場合は \[2, 30] の整数。ビデオ入力ありの場合は、入力
    ビデオの再生時間と出力ビデオの再生時間の合計が 30 秒を超えてはなりません。-1 を指定すると、
    モデルが適切な再生時間を選ぶスマート再生時間モードが有効になります
    このプロキシは \[-1, 30] の範囲外の再生時間に対して 400 を返します。

    範囲: `-1` 〜 `30`
</ParamField>

<ParamField body="parameters.prompt_extend" type="boolean" default="true">
  プロンプトのインテリジェントな書き換えを有効にするかどうか。デフォルトは true です
</ParamField>

<ParamField body="parameters.ratio" type="string">
  生成されるビデオのアスペクト比。wan2.7 および wan3.0 モデル専用です。
  wan2.7 モデルでは、指定しない場合は解像度のティアに基づいてデフォルトが決まります。
  wan3.0-video では、adaptive（デフォルト）が入力メディアの比率と意図に基づいて
  適切なアスペクト比を自動的に推奨します。

  指定可能な値: `adaptive`, `16:9`, `9:16`, `1:1`, `4:3`, `3:4`
</ParamField>

<ParamField body="parameters.resolution" type="string">
  解像度レベル。サポートされる値はモデルによって異なります:

  * wan2.5-i2v-preview: 480P、720P、1080P
  * wan2.6 モデル（t2v、i2v、r2v）: 720P、1080P のみ（480P は非サポート）
  * wan2.7 モデル（i2v、t2v、r2v、videoedit）: 720P、1080P（デフォルトは 1080P）
  * wan3.0-video、wan3.0-video-prime: 480P、720P、1080P (上流のデフォルトは 1080P)
  * happyhorse-1.0-\* (t2v、i2v、r2v、video-edit): 720P、1080P
  * happyhorse-1.1-\* (t2v、i2v、r2v): 480P、720P、1080P
    このプロキシは、`resolution` と `size` のどちらも指定していないビデオ生成リクエストを拒否します。解像度ティアが課金レートを選択するためです。チェックの前に `resolution` を大文字化し、その大文字化した値を転送します。この enum に含まれない値には 400 を返し、上記で 480P がないモデルとして挙げられている wan2.6、wan2.7、happyhorse-1.0 では 480P (`resolution` として送信された場合も、480P の `size` として送信された場合も) に対して 400 を返します。

    指定可能な値: `480P`、`720P`、`1080P`
</ParamField>

<ParamField body="parameters.seed" type="integer">
  乱数シード。モデルが生成するコンテンツのランダム性を制御するために使用します

  範囲: `0` ～ `2147483647`
</ParamField>

<ParamField body="parameters.shot_type" type="string" default="&#x22;single&#x22;">
  インテリジェントなマルチレンズ制御。prompt\_extend が有効な場合にのみ機能します。
  wan2.6 および wan2.7-r2v モデル用。

  * single: 単一ショットのビデオ (デフォルト)
  * multi: マルチショットのビデオ

    指定可能な値: `multi`、`single`
</ParamField>

<ParamField body="parameters.size" type="string">
  width*height 形式のビデオ解像度。対応する解像度はモデルによって異なります:
  wan2.5 T2V の場合: 480P (480*832、832*480、624*624)、720P、1080P の各サイズ
  wan2.6 T2V/R2V の場合 (480P なし):
  720P: 1280*720、720*1280、960*960、1088*832、832*1088
  1080P: 1920*1080、1080*1920、1440*1440、1632*1248、1248*1632
  size と resolution の両方を送信した場合、課金ティアを選択するのは size であり、resolution は引き続きこのプロキシがそのモデルで受け付ける値である必要があります。480P の size は、解像度の説明で 480P がないと記載されているすべてのモデルで 400 を返します。
</ParamField>

<ParamField body="parameters.watermark" type="boolean" default="false">
  ウォーターマークロゴを追加するかどうか。ウォーターマークは右下隅に配置されます
</ParamField>

Router が `GET /v2/models/wan/wan3.0-video/openapi.json` で提供するスキーマから生成されています。これは、リクエストがプロバイダーに到達する前に Router が呼び出しを検証する対象となるドキュメントと同じものです。

### 出力

<ResponseField name="output" type="object" required />

<ResponseField name="output.actual_prompt" type="string">
  インテリジェントな書き換え後の実際のプロンプト (ビデオタスク用)
</ResponseField>

<ResponseField name="output.check_audio" type="string">
  オーディオ生成を伴うI2Vタスク用のオーディオURL
</ResponseField>

<ResponseField name="output.code" type="string">
  失敗したリクエストのエラーコード (リクエストが成功した場合は返されません)
</ResponseField>

<ResponseField name="output.end_time" type="string">
  タスク完了時間
</ResponseField>

<ResponseField name="output.message" type="string">
  失敗したリクエストの詳細情報 (リクエストが成功した場合は返されません)
</ResponseField>

<ResponseField name="output.orig_prompt" type="string">
  オリジナルの入力プロンプト (ビデオタスク用)
</ResponseField>

<ResponseField name="output.results" type="object[]">
  画像生成タスクのタスク結果のリスト
</ResponseField>

<ResponseField name="output.results[].actual_prompt" type="string">
  インテリジェントな書き換え後の実際のプロンプト (有効な場合)
</ResponseField>

<ResponseField name="output.results[].code" type="string">
  画像のエラーコード (一部のタスクが失敗した場合に返されます)
</ResponseField>

<ResponseField name="output.results[].message" type="string">
  画像のエラー情報 (一部のタスクが失敗した場合に返されます)
</ResponseField>

<ResponseField name="output.results[].orig_prompt" type="string">
  オリジナルの入力プロンプト
</ResponseField>

<ResponseField name="output.results[].url" type="string">
  生成済み画像のURLアドレス
</ResponseField>

<ResponseField name="output.scheduled_time" type="string">
  タスク実行時間
</ResponseField>

<ResponseField name="output.submit_time" type="string">
  タスク送信時間
</ResponseField>

<ResponseField name="output.task_id" type="string" required>
  タスクID
</ResponseField>

<ResponseField name="output.task_metrics" type="object">
  画像生成タスクのタスク結果統計
</ResponseField>

<ResponseField name="output.task_metrics.FAILED" type="integer">
  失敗したタスク数
</ResponseField>

<ResponseField name="output.task_metrics.SUCCEEDED" type="integer">
  成功したタスク数
</ResponseField>

<ResponseField name="output.task_metrics.TOTAL" type="integer">
  タスクの合計数
</ResponseField>

<ResponseField name="output.task_status" type="string" required>
  タスクステータス

  取り得る値: `PENDING`、`RUNNING`、`SUCCEEDED`、`FAILED`、`CANCELED`、`UNKNOWN`
</ResponseField>

<ResponseField name="output.video_url" type="string">
  完了したビデオ生成タスクのビデオURL。リンクの有効期間は24時間
</ResponseField>

<ResponseField name="request_id" type="string" required>
  一意のリクエスト識別子
</ResponseField>

<ResponseField name="usage" type="object">
  出力情報の統計。成功した結果のみがカウントされます
</ResponseField>

<ResponseField name="usage.SR" type="integer">
  ビデオ解像度レベル (I2Vおよびwan3.0-videoタスク)
</ResponseField>

<ResponseField name="usage.duration" type="number">
  生成済みビデオの再生時間 (秒) (I2Vおよびwan3.0-videoタスク)
</ResponseField>

<ResponseField name="usage.fps" type="integer">
  生成済みビデオのフレームレート (wan3.0-videoタスク)
</ResponseField>

<ResponseField name="usage.image_count" type="integer">
  生成済み画像の数 (T2IおよびI2Iタスク)
</ResponseField>

<ResponseField name="usage.input_video_duration" type="number">
  入力ビデオの再生時間 (秒)。ビデオ入力がない場合は0.0 (wan3.0-videoタスク)
</ResponseField>

<ResponseField name="usage.output_video_duration" type="number">
  出力ビデオの再生時間 (秒) (wan3.0-videoタスク)
</ResponseField>

<ResponseField name="usage.ratio" type="string">
  生成済みビデオのアスペクト比 (例: 16:9) (wan3.0-videoタスク)
</ResponseField>

<ResponseField name="usage.size" type="string">
  画像解像度 (T2IおよびI2Iタスク)
</ResponseField>

<ResponseField name="usage.video_count" type="integer">
  生成済みビデオの数 (T2Vタスク)
</ResponseField>

<ResponseField name="usage.video_duration" type="number">
  生成済みビデオの再生時間 (秒) (T2Vタスク)
</ResponseField>

<ResponseField name="usage.video_ratio" type="string">
  ビデオ解像度の比率 (T2Vタスク)
</ResponseField>

<ResponseField name="code" type="string">
  失敗したリクエストのエラーコード。`output` の下ではなく、エンベロープのルートで報告されます (リクエストが成功した場合は返されません)。
</ResponseField>

<ResponseField name="message" type="string">
  失敗したリクエストの詳細情報。`output` の下ではなく、エンベロープのルートで報告されます (リクエストが成功した場合は返されません)。`output.message` にフォールバックする前に、こちらを確認してください。
</ResponseField>

## 例

### 入力

```json theme={null}
{
  "input": {
    "prompt": "the robot lowers its raised arm and steps toward the camera, the flat orange backdrop holds steady",
    "media": [
      {
        "type": "first_frame",
        "url": "https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/input/pink_robot_front.png"
      }
    ]
  },
  "parameters": {
    "resolution": "720P",
    "duration": 5
  }
}
```

### 出力

```json theme={null}
{
  "output": {
    "task_id": "0385dc79-5ff8-4d82-bcb6-7c1a9f2e4d60",
    "task_status": "SUCCEEDED",
    "submit_time": "2027-01-01T00:00:00.000Z",
    "scheduled_time": "2027-01-01T00:00:01.000Z",
    "end_time": "2027-01-01T00:01:04.000Z",
    "orig_prompt": "the robot lowers its raised arm and steps toward the camera, the flat orange backdrop holds steady",
    "actual_prompt": "the robot lowers its raised arm and steps toward the camera, the flat orange backdrop holds steady, smooth studio lighting, subtle camera push in",
    "video_url": "https://.../generated.mp4"
  },
  "request_id": "7574ee8f-38a3-4b1e-9280-11c33ab46e51",
  "usage": {
    "SR": 720,
    "duration": 5
  }
}
```

ビデオの URL は 24 時間有効です。保持する必要がある場合は、速やかにビデオをダウンロードしてください。

## 出荷前の確認

SDK は `Idempotency-Key` を生成し、自動リトライで再利用します。手動リトライでは元のキーを再利用してください。Router は最大 10 分間接続を保持できます。

リクエストが失敗すると、Router は理由を説明する `X-Comfy-Error-Type` レスポンスヘッダーを送信します。`422` は、プロバイダーを呼び出す前に Router が入力を拒否したことを意味し、`413` はリクエスト本文が Router の受け入れ可能なサイズを超えていたことを意味します。生成されたアセットは [結果 URL の有効期限](/ja/development/comfy-router/reference#結果アセット) があるため、早めにダウンロードしてください。

上記のフィールド説明に記載されているサイズ制限は、プロバイダーの仕様から引用した、そのフィールドに対するプロバイダー自身の上限です。Router はリクエスト本文全体に対して別の上限を適用し、base64 エンコードされたメディアもこれにカウントされます。[リクエスト本文のサイズ](/ja/development/comfy-router/limitations) を参照してください。

このページは、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](/ja/development/api-development/sdks) を参照してください。

<CardGroup cols={3}>
  <Card title="ヘッダー" icon="list" href="/ja/development/comfy-router/headers">
    認証、冪等性、リクエスト ID、エラー分類、リトライ間隔、支出上限。
  </Card>

  <Card title="Router API の利用" icon="code" href="/ja/development/comfy-router/api">
    モデルの検出、バリデーションエラー、リトライ、課金。
  </Card>

  <Card title="制限事項" icon="triangle-exclamation" href="/ja/development/comfy-router/limitations">
    Router が現在対応していないことと、代替手段。
  </Card>
</CardGroup>


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