万相 Wan 视频 API 规范
wan3.0-video 与 wan3.0-video-prime 的分辨率、时长、比例、首尾帧、多素材参考(media 数组)、Responses 接口调用和官方计费规则。
本页是阿里万相视频模型 wan3.0-video、wan3.0-video-prime 的调用规范。它们与其他视频模型共用 POST /v1/videos 创建、GET /v1/videos/{id} 轮询的流程;鉴权、素材上传、轮询状态、结果下载和错误处理见 视频 API 完整调用规范,本页只列出万相特有的字段和规则。万相也可以用 POST /v1/responses 提交,见 用 Responses 接口调用。
更新于 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。万相只支持轮询,不要设置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 | 同上 | 同上 | 同上 | 同上 |
两个模型能力一致:分辨率、时长、比例、首尾帧和多素材参考的规则相同,请求参数通用,切换只需修改 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:是否自动改写提示词,布尔值,默认true;watermark:是否加水印,布尔值;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;同一个素材用多种写法提交且地址不一致时,也会返回 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。万相不接受
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 接口调用
这两个模型也可以用 POST /v1/responses 提交,适合只能调用 Responses 接口的客户端或工作流。它和 /v1/videos 生成的是同一种视频任务,参数规则和计费完全相同。
- 提示词写在
input:可以是字符串,也可以是消息数组。消息里的input_text作为提示词,input_image作为图片素材,规则同顶层images(第 1 张为首帧、第 2 张为尾帧)。 - 其他参数(
resolution、duration、ratio、media、negative_prompt等)照常写在请求顶层,写法与上文相同。 - 取结果有三种方式:
| 方式 | 写法 | 说明 |
|---|---|---|
| 同步等待 | 不传 stream 和 background | 连接保持到视频生成完成后直接返回结果,最长等待约 10 分钟。超时会返回 "status": "incomplete",任务仍在继续,用返回的 id 查询即可 |
| 后台提交 | "background": true | 立即返回 id(状态为 queued 或 in_progress),之后用 GET /v1/responses/{id} 轮询,直到 status 为 completed 或 failed |
| 流式 | "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
}生成完成后,视频地址在 output[0].content[0].text 中,格式为 <video controls src="视频地址"></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 是对应的视频任务号,也可以用 GET /v1/videos/{task_id} 查询同一个任务。
对话接口不能生成视频
只有万相支持 /v1/responses。/v1/chat/completions、/v1/messages 和生图接口都不能调用视频模型,会返回 400 video_model_wrong_endpoint。
计费
wan3.0-video 与 wan3.0-video-prime 是官方版,任务结果使用官方 URL。计费按官方规则:
计费时长 = 输入视频时长 + 输出视频时长
- 输入视频时长:实际输入的参考视频秒数;没有参考视频时为 0。
- 输出视频时长:成功生成的视频秒数。
- 单价按输出分辨率(480P / 720P / 1080P)计算,输入视频与输出视频使用同一档单价。
- 参考图片、参考音频、文档和网页不计入时长。
- 带参考视频,或
duration为-1时,提交按 30 秒预扣;完成后按模型平台返回的输入加输出秒数结算,并退回差额。
具体每秒单价以模型广场当前显示为准。带参考视频时不要只按输出秒数估算费用。