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

# Wan Videos Generation API 接続説明

> Tongyi Wansiang Video Generation 集成指南 - XHuoAPI

本文では、カスタムパラメータを入力することで通義万相公式の動画を生成できるWan Videos Generation APIの接続説明を紹介します。

## 申請プロセス

APIを使用するには、まず[Wan Videos Generation API](https://api.xhuoapi.ai/documents/52b0f490-1bbf-4fe5-b60e-96626d333d2c)の該当ページでサービスを申請する必要があります。ページに入ったら、「Acquire」ボタンをクリックします。以下の図のように：

![](https://cdn.xhuoapi.ai/q6ytrc.png)

まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされ、登録とログインを促されます。ログインまたは登録後、現在のページに自動的に戻ります。

初回申請時には無料のクレジットが付与され、このAPIを無料で使用できます。

## 基本使用

まず、基本的な使用方法を理解します。これは、プロンプト `prompt`、生成行動 `action`、初フレーム参照画像 `image_url`、およびモデル `model` を入力することで処理された結果を得ることができます。まず、`action` フィールドを簡単に渡す必要があります。その値は `text2video` で、主に2つの行動が含まれます：文生動画（`text2video`）、図生動画（`image2video`）。次に、モデル `model` を入力する必要があります。現在、主に `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`, `wan2.6-t2v` モデルがあります。具体的な内容は以下の通りです：

<p>
  <img src="https://cdn.xhuoapi.ai/03gqdz.png" width="500" className="m-auto" />
</p>

ここでは、リクエストヘッダーを設定しています。これには以下が含まれます：

* `accept`：受け取りたいレスポンス結果の形式。ここでは `application/json`、つまりJSON形式を記入します。
* `authorization`：APIを呼び出すためのキー。申請後、直接ドロップダウンから選択できます。

さらに、リクエストボディを設定しています。これには以下が含まれます：

* `model`：生成する動画のモデル。主に `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`, `wan2.6-t2v` モデルがあります。
* `action`：今回の動画生成タスクの行動。主に3つの行動が含まれます：文生動画（`text2video`）、図生動画（`image2video`）。文生動画の場合、現在はモデル `wan2.6-t2v` のみがサポートされています。図生動画の場合、現在はモデル `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash` のみがサポートされています。
* `image_url`：図生動画行動 `image2video` を選択した場合、必ずアップロードする初フレーム参照画像のリンクが必要です。現在はモデル `wan2.6-i2v`、`wan2.6-i2v-flash` のみがサポートされています。
* `reference_video_urls`：図生動画時にオプションで、生成に使用する参考動画のリンクを指定します。現在はモデル `wan2.6-r2v` のみがサポートされています。
* `size`：生成する動画の解像度を指定します。形式は幅\*高さです。このパラメータのデフォルト値と利用可能な列挙値は model パラメータに依存します。具体的なルールは[公式ドキュメント](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2865250)を参照してください。
* `duration`：動画生成の長さ。主に5、10、15がサポートされています。
* `shot_type`：オプションで、生成する動画のショットタイプを指定します。つまり、動画が1つの連続ショットで構成されるか、複数の切り替えショットで構成されるかです。発効条件：`"prompt_extend": true` の場合のみ有効です。パラメータの優先順位：shot\_type > prompt。例えば、shot\_typeが"single"に設定されている場合、promptに「複数ショット動画を生成」と含まれていても、モデルは単一ショット動画を出力します。具体的なルールは[公式ドキュメント](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2865250)を参照してください。
* `negative_prompt`：オプションで、逆のプロンプト。動画画面に表示したくない内容を説明するために使用され、動画画面に制限をかけることができます。中英文をサポートし、長さは500文字を超えないようにします。超過部分は自動的に切り捨てられます。例：低解像度、エラー、最悪の品質、低品質、欠損、余分な指、比率不良など。
* `resolution`：生成する動画の解像度の階層を指定し、動画の鮮明さ（総ピクセル）を調整します。モデルは選択した解像度の階層に基づいて、自動的に近い総ピクセルにスケーリングし、動画のアスペクト比は入力画像 img\_url のアスペクト比とできるだけ一致させます。詳細は[公式ドキュメント](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2867393)を参照してください。
* `audio_url`：音声ファイルのURL。モデルはこの音声を使用して動画を生成します。使用方法は[公式ドキュメント](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2867393)を参照してください。
* `audio`：音声付き動画を生成するかどうか。パラメータの優先順位：audio > audio\_url。audio=falseの場合、audio\_urlを渡しても出力は無音動画となり、料金は無音動画として計算されます。デフォルト値はtrueです。
* `prompt_extend`：プロンプトのスマートリライトを有効にするかどうか。これを有効にすると、大きなモデルを使用して入力プロンプトをスマートにリライトします。短いプロンプトの場合、生成効果が顕著に向上しますが、時間がかかります。デフォルト値はtrueです。
* `prompt`：プロンプト。
* `callback_url`：結果をコールバックするURL。

選択後、右側にも対応するコードが生成されていることがわかります。以下の図のように：

<p>
  <img src="https://cdn.xhuoapi.ai/03gqdz.png" width="500" className="m-auto" />
</p>

「Try」ボタンをクリックするとテストができます。上の図のように、以下の結果が得られました：

```json theme={null}
{
  "success": true,
  "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/1d/db/20260124/da477ba2/0d2042f9-ba8d-496d-8ab5-182617e28f9e.mp4?Expires=1769349278&OSSAccessKeyId=LTAI5tKPD3TMqf2Lna1fASuh&Signature=SjBa4wRcDVx3SSYu/x7BYCFQk0s=",
  "state": "completed",
  "task_id": "a4bca552-d964-46a1-8ff7-fd922f916582"
}
```

返された結果には複数のフィールドがあり、以下のように説明されます：

* `success`：この時点での動画生成タスクの状態。
* `task_id`：この時点での動画生成タスクID。
* `video_url`：この時点での動画生成タスクの動画リンク。
* `state`：この時点での動画生成タスクの状態。

満足のいく動画情報が得られたことがわかります。結果の中の `video_url` の動画リンクアドレスを取得するだけで、生成された通義万相動画を得ることができます。

また、対応する接続コードを生成したい場合は、生成されたものを直接コピーできます。例えば、CURLのコードは以下の通りです：

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/wan/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "wan2.6-t2v",
  "prompt": "Astronauts shuttle from space to volcano",
  "duration": 5
}'
```

## 図生動画機能

もし参考画像や参考動画を使って動画を生成したい場合は、パラメータ `action` を `image2video` に設定し、参考画像のリンクまたは参考動画のリンクを入力する必要があります。次に、生成する動画をカスタマイズするために拡張する必要があるプロンプトを入力する必要があります。以下の内容を指定できます：

* `model`：動画を生成するモデルで、主に `wan2.6-i2v`、`wan2.6-r2v`、`wan2.6-i2v-flash`、`wan2.6-t2v` モデルがあります。
* `image_url`：画像から動画を生成する行動 `image2video` を選択した場合、アップロードする必要がある最初のフレームの参考画像リンクで、現在はモデル `wan2.6-i2v`、`wan2.6-i2v-flash` のみがサポートされています。
* `reference_video_urls`：画像から動画を生成する際にオプションで、生成に使用する参考動画のリンクを指定します。現在はモデル `wan2.6-r2v` のみがサポートされています。
* `prompt`：プロンプト。

記入例は以下の通りです：

<p>
  <img src="https://cdn.xhuoapi.ai/94l0kk.png" width="500" className="m-auto" />
</p>

記入が完了すると、自動的に以下のコードが生成されます：

<p>
  <img src="https://cdn.xhuoapi.ai/b5q8tt.png" width="500" className="m-auto" />
</p>

対応する Python コード：

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/wan/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "image2video",
    "model": "wan2.6-i2v",
    "prompt": "Astronauts shuttle from space to volcano",
    "duration": 5,
    "image_url": "https://cdn.xhuoapi.ai/r9vsv9.png",
    "callback_url": "https://www.baidu.com/"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

実行すると、以下のような結果が得られます：

```json theme={null}
{
  "success": true,
  "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/1d/db/20260124/da477ba2/0d2042f9-ba8d-496d-8ab5-182617e28f9e.mp4?Expires=1769349278&OSSAccessKeyId=LTAI5tKPD3TMqf2Lna1fASuh&Signature=SjBa4wRcDVx3SSYu/x7BYCFQk0s=",
  "state": "completed",
  "task_id": "a4bca552-d964-46a1-8ff7-fd922f916582"
}
```

結果の内容が上記と一致していることがわかり、動画の拡張機能が実現されました。

## 非同期コールバック

Wan Videos Generation API の生成時間は比較的長く、約 1-2 分かかります。API が長時間応答しない場合、HTTP リクエストは接続を維持し続け、追加のシステムリソースを消費するため、本 API では非同期コールバックのサポートも提供しています。

全体の流れは、クライアントがリクエストを発行する際に、追加で `callback_url` フィールドを指定します。クライアントが API リクエストを発行した後、API はすぐに結果を返し、現在のタスク ID を示す `task_id` フィールド情報を含みます。タスクが完了すると、生成された動画の結果が POST JSON 形式でクライアントが指定した `callback_url` に送信され、その中にも `task_id` フィールドが含まれているため、タスクの結果を ID で関連付けることができます。

以下の例を通じて、具体的にどのように操作するかを理解しましょう。

まず、Webhook コールバックは HTTP リクエストを受信できるサービスで、開発者は自分が構築した HTTP サーバーの URL に置き換える必要があります。ここではデモのために、公開の Webhook サンプルサイト [https://webhook.site/](https://webhook.site/) を使用します。このサイトを開くと、Webhook URL が得られます。以下のように示されています：

![](https://cdn.xhuoapi.ai/tbcnai.png)

この URL をコピーすれば、Webhook として使用できます。このサンプルは `https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3` です。

次に、フィールド `callback_url` を上記の Webhook URL に設定し、対応するパラメータを入力します。具体的な内容は以下のようになります：

<p>
  <img src="https://cdn.xhuoapi.ai/vdx12s.png" width="500" className="m-auto" />
</p>

実行すると、すぐに以下のような結果が得られます：

```
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
```

少し待つと、`https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3` で生成された動画の結果を確認できます。以下のように示されています：

![](https://cdn.xhuoapi.ai/zv5u2q.png)

内容は以下の通りです：

```json theme={null}
{
  "success": true,
  "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/1d/db/20260124/da477ba2/0d2042f9-ba8d-496d-8ab5-182617e28f9e.mp4?Expires=1769349278&OSSAccessKeyId=LTAI5tKPD3TMqf2Lna1fASuh&Signature=SjBa4wRcDVx3SSYu/x7BYCFQk0s=",
  "state": "completed",
  "task_id": "a4bca552-d964-46a1-8ff7-fd922f916582"
}
```

結果には `task_id` フィールドがあり、他のフィールドは上記と似ているため、このフィールドを通じてタスクの関連付けが可能です。

## エラーハンドリング

API を呼び出す際にエラーが発生した場合、API は対応するエラーコードとメッセージを返します。例えば：

* `400 token_mismatched`：不正なリクエスト、パラメータが不足しているか無効である可能性があります。
* `400 api_not_implemented`：不正なリクエスト、パラメータが不足しているか無効である可能性があります。
* `401 invalid_token`：未認証、無効または不足している認証トークン。
* `429 too_many_requests`：リクエストが多すぎます、レート制限を超えています。
* `500 api_error`：内部サーバーエラー、サーバーで何かがうまくいきませんでした。

### エラー応答の例

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## 結論

この文書を通じて、Wan Videos Generation API を使用して、プロンプトと最初のフレームの参考画像を入力することで動画を生成する方法を理解しました。この文書が、API の接続と使用をより良くする手助けとなることを願っています。何か問題があれば、いつでも技術サポートチームにお問い合わせください。
