Wan 3
Wan 3.0 视频生成接口,支持文生视频、首帧或首尾帧图生视频、参考生视频、视频编辑与视频延长。
Wan 3.0 通过统一的异步接口生成视频,支持文本、图片、视频、音频、文件和网页等输入。创建任务后会返回 task_id,客户端需要轮询查询接口;任务成功后,可从 output.video_url 获取生成的视频。视频生成通常需要约 1~5 分钟,实际耗时取决于任务内容和服务负载。
接口概览
| 方法 | 请求地址 | 说明 |
|---|---|---|
POST | https://token.aiznt.com/api/v1/services/aigc/video-generation/video-synthesis | 创建视频生成任务 |
GET | https://token.aiznt.com/api/v1/tasks/{task_id} | 查询任务状态与结果 |
所有请求使用以下认证方式:
Authorization: Bearer sk-你的aiznt密钥创建任务是异步调用,还必须传入 X-DashScope-Async: enable。查询接口不需要此请求头。
模型与能力
| 模型 | 说明 |
|---|---|
wan3.0-video-prime | 高速版,能力与标准版一致,生成速度更快。 |
wan3.0-video | 标准版。 |
两种模型均支持以下模式:
- 文生视频
- 首帧图生视频、首尾帧图生视频
- 使用图片、视频、音频、文件或网页的参考生视频
- 视频编辑与视频延长
生成视频最长 30 秒,输出帧率为 30 fps。
创建任务
POST /api/v1/services/aigc/video-generation/video-synthesis请求头
| 请求头 | 必填 | 值 | 说明 |
|---|---|---|---|
Authorization | 是 | Bearer sk-你的aiznt密钥 | 接口密钥。 |
Content-Type | 是 | application/json | 请求体格式。 |
X-DashScope-Async | 是 | enable | 启用异步处理;缺少时创建请求会失败。 |
请求参数
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
model | string | 是 | — | wan3.0-video-prime 或 wan3.0-video。 |
input | object | 是 | — | 输入内容。input.prompt 和 input.media 至少提供一项。 |
input.prompt | string | 条件必填 | — | 视频描述或编辑指令,支持中英文;每个汉字或字母按一个字符计算,超过 20000 个字符的部分会被自动截断。 |
input.media | array | 条件必填 | — | 媒体素材数组;每项包含 type 和 url。 |
input.media[].type | string | 是 | — | 素材类型,详见下方“媒体素材参数”。 |
input.media[].url | string | 是 | — | 素材公网 URL;图片还支持 Base64 data URL。 |
parameters | object | 否 | — | 输出与生成设置。 |
parameters.resolution | string | 否 | 1080P | 1080P、720P 或 480P。 |
parameters.ratio | string | 否 | adaptive | adaptive、21:9、16:9、4:3、1:1、3:4 或 9:16。 |
parameters.duration | integer | 否 | 5 | 输出时长,单位为秒。无视频输入时为 2~30 的整数;有视频输入时,输入视频总时长与输出视频时长之和不能超过 30 秒;-1 表示由模型智能决定时长。 |
parameters.audio | boolean | 否 | true | true 输出含音轨的视频,false 输出无音轨视频。 |
parameters.seed | integer | 否 | -1 | 随机种子,可传 -1 或 0~2147483647;-1 表示随机生成。相同种子不保证结果完全一致。 |
parameters.prompt_extend | boolean | 否 | true | 是否智能改写提示词。对较短提示词通常有明显帮助,但可能增加处理时间;传入 file 或 link 时必须为 true。 |
parameters.watermark | boolean | 否 | false | 是否添加水印标识。 |
媒体素材参数
input.media 可以包含多项素材。参考模式中,可在提示词内使用“图1”“视频1”“音频1”引用同类素材;编号按照同类素材在数组中的出现顺序分别计算。
type | 最大数量 | 输入要求 | 用途 |
|---|---|---|---|
first_frame | 1 张 | 图片 URL 或 Base64 data URL | 严格指定视频首帧。 |
last_frame | 1 张 | 图片 URL 或 Base64 data URL | 严格指定视频尾帧;需要与 first_frame 一起使用。 |
reference_image | 10 张 | 图片 URL 或 Base64 data URL | 参考人物、主体、场景或风格。 |
reference_video | 5 段 | 视频 URL;所有参考视频总时长不超过 15 秒 | 参考视频内容,也可用于编辑或延长。 |
reference_audio | 5 段 | 音频 URL;所有参考音频总时长不超过 15 秒 | 参考声音、对白或音乐。 |
file | 1 个 | 文件 URL | 根据文档内容生成视频,不能与 link 同时使用。 |
link | 1 个 | 无需登录即可访问的公开网页 URL | 根据网页内容生成视频,不能与 file 同时使用。 |
素材组合规则
- 文生视频只传
prompt,不要传media。 first_frame、last_frame只用于首帧或首尾帧模式,不能与reference_image、reference_video、reference_audio、file、link混用。- 首帧模式只传一个
first_frame;首尾帧模式传一个first_frame和一个last_frame。 reference_image、reference_video、reference_audio可以自由组合。file与link二选一,但可以与reference_image、reference_video、reference_audio组合。- 视频编辑或延长必须包含
reference_video,也可以同时加入reference_image或reference_audio,并在prompt中清楚描述编辑或延长意图。视频延长时应设置ratio: "adaptive"。 - 首帧和首尾帧模式不能同时传入音频。如果需要图片与音频共同驱动视频,请改用
reference_image与reference_audio组合。
请求示例
文生视频
curl https://token.aiznt.com/api/v1/services/aigc/video-generation/video-synthesis \
-H "Authorization: Bearer sk-你的aiznt密钥" \
-H "Content-Type: application/json" \
-H "X-DashScope-Async: enable" \
-d '{
"model": "wan3.0-video",
"input": {
"prompt": "一只小猫在月光下的屋顶上奔跑,远处城市霓虹闪烁,电影级光影,镜头平稳跟随。"
},
"parameters": {
"resolution": "1080P",
"ratio": "16:9",
"duration": 5,
"audio": true,
"prompt_extend": true,
"watermark": false
}
}'首尾帧图生视频
仅指定首帧时使用一个 first_frame:
curl https://token.aiznt.com/api/v1/services/aigc/video-generation/video-synthesis \
-H "Authorization: Bearer sk-你的aiznt密钥" \
-H "Content-Type: application/json" \
-H "X-DashScope-Async: enable" \
-d '{
"model": "wan3.0-video",
"input": {
"prompt": "一只小猫在草地上奔跑,镜头平稳跟随。",
"media": [
{
"type": "first_frame",
"url": "https://example.com/first-frame.png"
}
]
},
"parameters": {
"resolution": "720P",
"ratio": "adaptive",
"duration": 5,
"prompt_extend": true
}
}'同时指定首帧和尾帧时使用以下请求:
curl https://token.aiznt.com/api/v1/services/aigc/video-generation/video-synthesis \
-H "Authorization: Bearer sk-你的aiznt密钥" \
-H "Content-Type: application/json" \
-H "X-DashScope-Async: enable" \
-d '{
"model": "wan3.0-video",
"input": {
"prompt": "镜头从清晨的城市街道平滑过渡到夜晚灯火亮起。",
"media": [
{
"type": "first_frame",
"url": "https://example.com/first-frame.png"
},
{
"type": "last_frame",
"url": "https://example.com/last-frame.png"
}
]
},
"parameters": {
"resolution": "720P",
"ratio": "adaptive",
"duration": 5,
"prompt_extend": true
}
}'多模态参考生视频
curl https://token.aiznt.com/api/v1/services/aigc/video-generation/video-synthesis \
-H "Authorization: Bearer sk-你的aiznt密钥" \
-H "Content-Type: application/json" \
-H "X-DashScope-Async: enable" \
-d '{
"model": "wan3.0-video",
"input": {
"prompt": "让图1中的人物模仿视频1的动作,并使用音频1作为背景音乐。",
"media": [
{
"type": "reference_image",
"url": "https://example.com/character.jpg"
},
{
"type": "reference_video",
"url": "https://example.com/motion.mp4"
},
{
"type": "reference_audio",
"url": "https://example.com/music.mp3"
}
]
},
"parameters": {
"resolution": "720P",
"ratio": "adaptive",
"duration": 5,
"audio": true,
"prompt_extend": true
}
}'文件或网页参考生视频
传入文件时,模型会理解文件内容并结合提示词生成视频:
curl https://token.aiznt.com/api/v1/services/aigc/video-generation/video-synthesis \
-H "Authorization: Bearer sk-你的aiznt密钥" \
-H "Content-Type: application/json" \
-H "X-DashScope-Async: enable" \
-d '{
"model": "wan3.0-video",
"input": {
"prompt": "根据文件内容生成一段简洁、专业的产品介绍视频。",
"media": [
{
"type": "file",
"url": "https://example.com/product-introduction.pdf"
}
]
},
"parameters": {
"resolution": "720P",
"ratio": "adaptive",
"duration": 10,
"prompt_extend": true
}
}'使用公开网页作为参考时,将媒体项改为:
{
"type": "link",
"url": "https://example.com/public-article"
}file 和 link 不能同时出现,而且这两种输入都必须设置 prompt_extend: true。
视频编辑
以下示例根据提示词编辑输入视频:
curl https://token.aiznt.com/api/v1/services/aigc/video-generation/video-synthesis \
-H "Authorization: Bearer sk-你的aiznt密钥" \
-H "Content-Type: application/json" \
-H "X-DashScope-Async: enable" \
-d '{
"model": "wan3.0-video",
"input": {
"prompt": "将整个视频画面转换为黏土动画风格,保留原有镜头运动。",
"media": [
{
"type": "reference_video",
"url": "https://example.com/source.mp4"
}
]
},
"parameters": {
"resolution": "720P",
"ratio": "adaptive",
"prompt_extend": true
}
}'视频延长
视频延长必须在提示词中明确描述延长意图,并将 ratio 设置为 adaptive:
curl https://token.aiznt.com/api/v1/services/aigc/video-generation/video-synthesis \
-H "Authorization: Bearer sk-你的aiznt密钥" \
-H "Content-Type: application/json" \
-H "X-DashScope-Async: enable" \
-d '{
"model": "wan3.0-video",
"input": {
"prompt": "将视频1向后延长,镜头继续跟随人物走进远处的建筑。",
"media": [
{
"type": "reference_video",
"url": "https://example.com/source.mp4"
}
]
},
"parameters": {
"resolution": "720P",
"ratio": "adaptive",
"prompt_extend": true
}
}'创建任务响应
成功响应
{
"output": {
"task_status": "PENDING",
"task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxxxxxxxx"
},
"request_id": "4909100c-7b5a-9f92-bfe5-xxxxxxxxxxxx"
}| 字段 | 类型 | 说明 |
|---|---|---|
output | object | 任务信息。 |
output.task_id | string | 任务 ID,用于查询状态和结果;有效期为 24 小时。 |
output.task_status | string | 创建成功时通常为 PENDING。完整状态见“查询任务”。 |
request_id | string | 请求唯一标识,可用于排查问题。 |
创建成功仅表示任务已进入队列,不代表视频已经生成。请保存 task_id,不要重复创建相同任务。
失败响应
{
"code": "InvalidApiKey",
"message": "No API-key provided.",
"request_id": "7438d53d-6eb8-4596-8835-xxxxxxxxxxxx"
}| 字段 | 类型 | 说明 |
|---|---|---|
code | string | 错误码,仅请求失败时返回。 |
message | string | 错误详情,仅请求失败时返回。 |
request_id | string | 请求唯一标识。 |
查询任务
将创建响应中的 task_id 替换到路径中。建议每隔约 15 秒查询一次,直到任务进入终态。
curl "https://token.aiznt.com/api/v1/tasks/{task_id}" \
-H "Authorization: Bearer sk-你的aiznt密钥"任务状态
| 状态 | 说明 | 是否为终态 |
|---|---|---|
PENDING | 排队中。 | 否 |
RUNNING | 处理中。 | 否 |
SUCCEEDED | 任务成功。 | 是 |
FAILED | 任务失败。 | 是 |
CANCELED | 任务已取消。 | 是 |
UNKNOWN | 任务不存在、状态未知或任务 ID 已过期。 | 是 |
查询任务响应
成功响应
{
"request_id": "78c9b768-0285-996c-b682-xxxxxxxxxxxx",
"output": {
"task_id": "17ed7e50-00cf-4509-aea1-xxxxxxxxxxxx",
"task_status": "SUCCEEDED",
"submit_time": "2026-08-06 10:01:35.452",
"scheduled_time": "2026-08-06 10:01:35.507",
"end_time": "2026-08-06 10:13:33.838",
"orig_prompt": "一只小猫在月光下的屋顶上奔跑",
"video_url": "https://example.com/generated-video.mp4"
},
"usage": {
"video_count": 1,
"duration": 5.0,
"input_video_duration": 0.0,
"output_video_duration": 5.0,
"fps": 30,
"SR": 720,
"ratio": "16:9"
}
}响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
request_id | string | 请求唯一标识。 |
output | object | 任务状态与结果。 |
output.task_id | string | 任务 ID。 |
output.task_status | string | 当前任务状态。 |
output.submit_time | string | 提交时间,UTC+8,格式为 YYYY-MM-DD HH:mm:ss.SSS。 |
output.scheduled_time | string | 开始执行时间,UTC+8。 |
output.end_time | string | 完成时间,UTC+8。 |
output.orig_prompt | string | 原始提示词。 |
output.video_url | string | 成功时返回的 MP4(H.264)视频地址,有效期为 24 小时,请及时下载。 |
output.code | string | 任务失败时的错误码。 |
output.message | string | 任务失败时的错误详情。 |
usage | object | 成功任务的用量与输出信息。 |
usage.video_count | integer | 生成视频数量,固定为 1。 |
usage.duration | number | 总视频时长;无参考视频时等于输出视频时长,有参考视频时为输入与输出视频时长之和。 |
usage.input_video_duration | number | 输入参考视频总时长,单位为秒;无视频输入时为 0.0。 |
usage.output_video_duration | number | 输出视频时长,单位为秒。 |
usage.fps | integer | 输出帧率,通常为 30。 |
usage.SR | integer | 输出分辨率数值,例如 720。 |
usage.ratio | string | 实际输出宽高比。 |
失败响应
{
"request_id": "e5e57877-c0fc-47ed-8fad-xxxxxxxxxxxx",
"output": {
"task_id": "eff1443c-ccab-4676-aad3-xxxxxxxxxxxx",
"task_status": "FAILED",
"code": "InvalidParameter",
"message": "The two modes are mutually exclusive."
}
}如果查询返回 UNKNOWN,请确认 task_id 是否正确以及是否已超过 24 小时有效期。
任务查询过期响应
task_id 超过 24 小时查询有效期后,接口会返回 UNKNOWN:
{
"request_id": "a4de7c32-7057-9f82-8581-xxxxxxxxxxxx",
"output": {
"task_id": "502a00b1-19d9-4839-a82f-xxxxxxxxxxxx",
"task_status": "UNKNOWN"
}
}素材格式与限制
| 素材 | 格式 | 其他限制 |
|---|---|---|
| 图片 | JPEG、JPG、PNG、BMP、WEBP;PNG 不支持透明通道 | 单边 240~8000 px;宽高比不超过 8:1;单张不超过 20 MB。 |
| 视频 | MP4、MOV | 单段 1~15 秒;所有参考视频总时长不超过 15 秒;帧率至少 16 fps;单边 240~4096 px;宽高比不超过 8:1;单个不超过 100 MB。 |
| 音频 | WAV、MP3 | 单段 1~15 秒;所有参考音频总时长不超过 15 秒;单个不超过 15 MB。 |
| 文件 | DOCX、DOC、XLSX、XLS、PPTX、PPT、PDF、TXT、KEY、PAGES、NUMBERS、MD | 单个不超过 100 MB;PDF、Word、PPT、Keynote、Pages 最多 50 页。 |
| 网页 | HTTP 或 HTTPS 公开链接 | 必须无需登录即可访问。 |
重要说明
任务 ID 和成功结果中的视频地址均有时效。请在任务成功后立即下载并转存视频,不要将临时 video_url 作为长期访问地址。