Wan 動画 API 仕様
wan3.0-video と wan3.0-video-prime の呼び出し仕様。
このページは、Alibaba の Wan(万相)動画モデル wan3.0-video、wan3.0-video-prime の呼び出し仕様です。これらのモデルは、他の動画モデルと同じく POST /v1/videos で作成し、GET /v1/videos/{id} でポーリングします。認証、素材のアップロード、ポーリングのステータス、結果のダウンロード、エラー処理は動画 API 完全呼び出し仕様を参照してください。このページでは、Wan に固有のフィールドとルールだけを説明します。Wan は POST /v1/responses でも送信できます。下記「Responses API での呼び出し」を参照してください。
2026-10-12 更新。従来の
wan3.0-video-480p、wan3.0-video-720p、wan3.0-video-1080pはwan3.0-videoに統合され、解像度はresolutionで選びます。開始フレーム・終了フレーム・参照素材はトップレベルのmedia配列(first_frame、last_frame、reference_imageなど)で送ることをおすすめします。metadata.firstFrame、metadata.lastFrame、metadata.referenceImages、metadata.referenceVideos、metadata.referenceAudios(metadata.first_frameなどのスネークケースも可)とトップレベルのfirstFrame/first_frame、lastFrame/last_frameも使え、いずれもmediaに変換されます(mediaとの同時送信は不可)。読み取れない素材フィールドは 400 エラーになります。Wan はポーリングのみに対応しています。callback_urlは設定しないでください。
モデル一覧
| モデル | 解像度 | 長さ | アスペクト比 | 参照素材の上限 |
|---|---|---|---|---|
wan3.0-video | 480P / 720P / 1080P、デフォルト 1080P | -1 または 2–30 秒、デフォルト 5 秒 | adaptive 16:9 9:16 1:1 4:3 3:4 21:9、デフォルト adaptive | 画像 10/動画 5/音声 5 |
wan3.0-video-prime | 同上 | 同上 | 同上 | 同上 |
2 つのモデルの機能は同じです。解像度、長さ、アスペクト比、開始・終了フレーム、マルチ素材参照のルールは共通で、リクエストパラメーターもそのまま使えます。切り替えは model を変えるだけです。違いは生成速度で、wan3.0-video-prime は高速版としてエンドツーエンドの生成が明らかに速く、完成動画をできるだけ早く受け取りたい場合に向いています。wan3.0-video は標準版で、生成時間を急がない場合はこちらで十分です。
共通ルール
- 解像度:トップレベルの
resolutionに480p、720p、1080pのいずれかを指定します(大文字・小文字は問いません)。省略すると 1080P です。ピクセルサイズのsize(例:1280x720、1920x1080)でも指定でき、その場合は解像度とアスペクト比が同時に決まります。sizeにアスペクト比を書くこともでき(例:"size": "9:16")、ratio/aspect_ratioと一致しない場合は 400 が返ります。 - 長さ:
duration(またはseconds)に整数の秒数を指定します。-1はモデルが長さを自動で決めることを表します。 - アスペクト比:
ratio(または同じ意味のaspect_ratio)を使います。両方が一致しない場合は 400 が返ります。adaptiveは入力素材に合わせて自動調整することを表します。 - プロンプト:開始フレームまたは参照素材を指定した場合は
promptを省略できますが、動きやカメラワークを書くことを推奨します。どちらもない場合は 400 が返されます。 - 任意フィールド:
negative_prompt:ネガティブプロンプトprompt_extend:プロンプトを自動で書き換えるかどうか。ブール値で、デフォルトはtruewatermark:透かしを入れるかどうか。ブール値seed:整数、-1 から 2147483647
{
"model": "wan3.0-video",
"prompt": "雨の夜の街を走る銀色のスポーツカー、ローアングルの追従ショット、ネオンの映り込み、映画のような質感",
"duration": 10,
"resolution": "1080p",
"ratio": "16:9"
}開始フレームと開始・終了フレーム
開始フレームと終了フレームは media 配列に入れます。first_frame が開始フレーム、last_frame が終了フレームです(終了フレームを使う場合は開始フレームも必須)。参照画像も media(reference_image)で送ります。詳しくは次の節を参照してください。
{
"model": "wan3.0-video-prime",
"prompt": "早朝の誰もいない広場から、夜に明かりが灯った同じ構図へなめらかに移り変わる",
"duration": 8,
"resolution": "720p",
"media": [
{ "type": "first_frame", "url": "https://cdn.example.com/start.jpg" },
{ "type": "last_frame", "url": "https://cdn.example.com/end.jpg" }
]
}素材フィールドの書き方
media の使用をおすすめします。トップレベルの images/image(1 枚目が開始、2 枚目が終了フレーム)、metadata.firstFrame(または metadata.first_frame)、トップレベルの firstFrame/first_frame なども使えます。読み取れない素材フィールド(例:metadata.image、metadata.images)は 400 になり、media を使うよう案内されます。同じ素材を複数の名前で異なる URL のまま送った場合も 400 になります。
マルチ素材の参照:media 配列
参照画像、参照動画、参照音声は、すべてトップレベルの media 配列に入れます。各要素は { "type": "...", "url": "..." } です。
type | 用途 | 上限 |
|---|---|---|
first_frame | 開始フレーム | 1 |
last_frame | 終了フレーム。first_frame も必須 | 1 |
reference_image | 参照画像 | 10 |
reference_video | 参照動画 | 5 |
reference_audio | 参照音声 | 5 |
- 開始フレーム/終了フレームは、参照画像、参照動画、参照音声と併用できません。
mediaを送った場合はmediaだけが読み取られます。images、imageなどのフィールドにmediaに含まれない素材があると 400 が返ります。開始・終了フレームもmediaの中に書いてください。- 素材 URL は匿名でアクセスできる必要があります。要件は素材 URL の要件を参照してください。ローカルファイルは先にローカル素材のアップロードの手順で URL を取得します。Wan は
multipart/form-dataによるファイルアップロードを受け付けません。
{
"model": "wan3.0-video",
"prompt": "参照画像の人物が参照音声のリズムに合わせて踊り、動きは参照動画のスタイルに合わせる",
"duration": 10,
"resolution": "720p",
"ratio": "9:16",
"media": [
{ "type": "reference_image", "url": "https://cdn.example.com/dancer.jpg" },
{ "type": "reference_video", "url": "https://cdn.example.com/dance-motion.mp4" },
{ "type": "reference_audio", "url": "https://cdn.example.com/music.mp3" }
]
}Responses API での呼び出し
2 つのモデルは POST /v1/responses でも送信できます。Responses API しか呼び出せないクライアントやワークフロー向けです。/v1/videos と同じ動画タスクが作成され、パラメーターのルールと課金も同じです。
- プロンプトは
inputに書きます。文字列でもメッセージ配列でも構いません。メッセージ内のinput_textがプロンプトに、input_imageが画像素材になり、トップレベルのimagesと同じルール(1 枚目が開始フレーム、2 枚目が終了フレーム)で扱われます。 - その他のパラメーター(
resolution、duration、ratio、media、negative_promptなど)は、上記と同じ書き方でリクエストのトップレベルに書きます。 - 結果の受け取り方は 3 通りです:
| 方式 | 書き方 | 説明 |
|---|---|---|
| 同期待機 | stream と background を指定しない | 動画が完成するまで接続を保ち、結果をそのまま返します。最大で約 10 分待ちます。タイムアウトすると "status": "incomplete" が返りますが、タスクは続行中なので、返された id で照会してください |
| バックグラウンド | "background": true | すぐに id を返します(ステータスは queued または in_progress)。その後 status が completed または failed になるまで GET /v1/responses/{id} でポーリングします |
| ストリーミング | "stream": true | SSE で response.created、response.in_progress(進捗付き)を送り、完成時は response.output_text.done と response.completed、失敗時は response.failed を送ります |
{
"model": "wan3.0-video-prime",
"input": "雨の夜の街を走る銀色のスポーツカー、ローアングルの追従ショット、ネオンの反射、映画的",
"duration": 5,
"resolution": "720p",
"ratio": "16:9",
"background": true
}完成すると、動画の URL が output[0].content[0].text に <video controls src="動画の URL"></video> の形式で入ります。src の値を取り出してダウンロードしてください:
{
"id": "resp_BVQwZLWyXB2dEU99F7nrER7XNJdVh8RS",
"object": "response",
"model": "wan3.0-video-prime",
"status": "completed",
"output": [
{
"type": "message",
"role": "assistant",
"status": "completed",
"content": [
{ "type": "output_text", "text": "<video controls src=\"https://...\"></video>" }
]
}
],
"metadata": {
"task_id": "task_BVQwZLWyXB2dEU99F7nrER7XNJdVh8RS",
"task_status": "completed"
}
}metadata.task_id は対応する動画タスク ID です。GET /v1/videos/{task_id} で同じタスクを照会することもできます。
チャット API では動画を生成できません
/v1/responses に対応しているのは Wan だけです。/v1/chat/completions、/v1/messages、画像生成 API では動画モデルを呼び出せず、400 video_model_wrong_endpoint が返ります。
課金
wan3.0-video と wan3.0-video-prime は公式版で、タスク結果は公式 URL を使います。課金は公式ルールに従います。
課金秒数 = 入力動画の長さ + 出力動画の長さ
- 入力動画の長さ:実際に送った参照動画の秒数。参照動画がなければ 0。
- 出力動画の長さ:生成に成功した動画の秒数。
- 単価は出力解像度(480P / 720P / 1080P)の段階料金。入力動画と出力動画は同じ段階を使う。
- 参照画像、参照音声、ファイル、ウェブページは課金秒数に含まれない。
- 参照動画がある場合、または
durationが-1の場合は、作成時に 30 秒分を仮引きし、完了後にモデルプラットフォームが返した入力+出力秒数で精算して差額を戻す。
1 秒あたりの単価はモデル広場の表示に従う。参照動画付きのタスクを出力秒数だけで見積もらないこと。