Wan 3.0(通義万相)による動画生成(非同期)。エンドポイントは 1 つで、渡す素材によってモードが決まります。素材なしならテキストから動画、参照画像 1 枚なら最初のフレーム、2 枚なら最初と最後のフレーム、3 枚以上なら複数画像参照、参照動画を渡すと動画編集になります。長さは 2〜30 秒の任意の整数、解像度は 480P / 720P / 1080P(既定は 720P。等級ごとに単価が異なります)、size は 16:9 / 9:16 / 1:1 / 4:3 / 3:4 で、最初のフレームがある場合は size=adaptive を渡して参照画像の比率に合わせることもできます。参照画像は最大 10 枚、参照動画は 5 本、参照オーディオは 5 本まで(後者 2 つは合計 15 秒まで)。ジョブ ID が返るので(HTTP 202)、GET /v1/videos/jobs/{id} を status=succeeded になるまでポーリングし、結果を data[0].url から取得します(再ホストした mp4)。課金は秒単位で、出力の長さに加えて各参照動画の長さも対象になります。参照画像と参照オーディオは無料です。失敗時は全額返金します。
Playground で試す →認証
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
コンソールで API Key を作成すると利用を開始できます。
リクエストボディ
| パラメータ | 種別 | 必須 | 説明 |
|---|---|---|---|
| model | string | はい | モデル ID。ここでは wan3.0-video です。 |
| prompt | string | はい | 動画の内容、カメラ、動きを説明するテキストプロンプト。最大 5000 バイト(UTF-8。漢字 1 文字は 3 バイト)。参照素材は順に @Image1 / @Video1 / @Audio1 として指名できます。例:「@Image1 の人物を @Video1 のカメラワークで」。指名しない場合はモデルが自分で判断します。 |
| duration | integer | いいえ | 長さ(秒)。2〜30 の任意の整数で、既定は 2 です。seconds とも書けます。秒単位で課金します。 |
| resolution | string | いいえ | 解像度: 480P / 720P / 1080P(既定は 720P)。秒単価: 480P $0.09 / 720P $0.12 / 1080P $0.16。 |
| size | string | いいえ | 画面比率: 16:9 / 9:16 / 1:1 / 4:3 / 3:4(既定は 16:9)。aspect_ratio とも書けます。最初のフレームがある場合は adaptive を渡すと、出力が参照画像の比率に合わせられます。21:9 には対応していません。 |
| image | string | いいえ | 画像から動画:参照画像を 1 枚渡すと、既定でそれが最初のフレームになります(公開 URL、data: URI、base64)。省略するとテキストから動画になります。 |
| images | array | いいえ | 複数枚の参照画像。最大 10 枚で、無料です。2 枚以上の場合は既定で被写体・場面の参照として扱います。上限を超えた場合は切り詰めずに拒否し、reference_images とも書けます。注意: どの参照画像にでも写っている人物はすべて候補の被写体になるため、場面の参照には他の人物を入れないほうが安全です。 |
| image_role | string | いいえ | 参照画像の使い方:first_frame(2 枚目は最後のフレームになります)または reference(被写体や場面のガイド)。省略した場合、1 枚なら first_frame、2 枚以上なら reference が既定です。参照動画と併用する場合は reference が必須です。 |
| video_references | array | いいえ | 参照動画。最大 5 件、合計 15 秒までです。各要素は {"url": "...", "duration": 5} の形で書き、duration(秒)は必須です。参照動画の秒数も出力と一緒に課金されるためです。公開 http(s) リンクのみ受け付けます。参照動画を入れる場合は、参照と出力の合計が 30 秒を超えないようにしてください。参照画像と併用できます。 |
| audio_reference | string / array | いいえ | 参照オーディオの公開 http(s) リンク。最大 5 件、合計 15 秒までで、無料です。参照画像または参照動画と一緒に使う必要があります。 |
| prompt_extend | boolean | いいえ | 公式のプロンプト自動書き換え。省略すると上流の既定(有効)が適用されます。丹念に書いたプロンプトをそのまま使いたい場合は false を渡してください。 |
リクエスト例
# 1) submit -> 202 {"id":"img_...","status":"queued"}
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "wan3.0-video", "prompt": "a paper crane unfolding over a misty lake", "duration": 5, "resolution": "720P", "size": "16:9"}'
# image-to-video: also pass "image": "https://example.com/first-frame.png"
# 2) poll every ~15s until status=succeeded, then read data[0].url
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'レスポンス
{
"id": "img_3f9a...c2",
"object": "video.generation.job",
"status": "queued",
"model": "wan3.0-video"
}非同期の動画ジョブ(送信 → ポーリング)
モデルは 1 つで、種類はパラメータで選びます。tier=lite/fast/quality、resolution=720p/1080p/4k(1080p と 4k は quality が必要)、size=16:9/9:16、duration=4s/6s/8s。image パラメータを加えると画像から動画(最初のフレーム)になります。HTTP 202 とジョブ ID が返るので、status=succeeded になるまでポーリングし、結果を data[0].url から取得してください(再ホストした mp4。1〜2 分ほど)。
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "wan3.0-video", "prompt": "夕暮れにサーフィンをする猫", "tier": "quality", "resolution": "1080p", "size": "16:9", "duration": "8s"}'{ "id": "img_3f9a...c2", "object": "video.generation.job", "status": "queued", "model": "wan3.0-video" }curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'
{
"id": "img_3f9a...c2",
"object": "video.generation.job",
"status": "succeeded",
"model": "wan3.0-video",
"data": [{ "url": "https://img.nezhagate.com/i/9f86d081a8....mp4" }]
}秒単位で課金($0.12/秒 x 長さ)。確保額と請求額は完全に一致し、生成が失敗またはタイムアウトした場合は自動的に全額返金します。
エラーコード
| Code | 説明 |
|---|---|
| 401 | API Key が欠落または無効 |
| 402 | 残高不足または Key が上限超過 |
| 400 | モデルまたはパラメータが非対応 |
| 429 | 上流のレート制限 |
| 502 | すべての上流回線が失敗 |