API 文档
通义万相图生视频 API 接口文档 - 基于首帧图像生成流畅视频
#模型概览
通义万相图生视频模型根据首帧图像和文本提示词,生成一段流畅的视频
支持的能力
- 基础能力:支持选择视频时长(3-10秒)、指定视频分辨率(480P/720P/1080P)
- 音频能力:支持自动配音,或传入自定义音频文件,实现音画同步(仅 wan2.5-i2v-preview 支持)
- 首尾帧生成:支持输入首帧和尾帧图像,生成平滑过渡的视频(仅 wan2.1-kf2v-plus 支持)
- 智能改写:使用大模型对输入 prompt 进行智能改写
模型规格
| 模型名称 | 简介 | 输出规格 |
|---|---|---|
wan2.5-i2v-preview推荐 | 万相2.5 preview(有声视频) | 480P/720P/1080P,5秒/10秒,24fps |
wan2.1-kf2v-plus新增 | 首尾帧生成视频 | 720P,5秒,25fps |
#快速开始
由于图生视频任务耗时较长(通常为1-5分钟),API 采用异步调用
1
创建任务获取任务ID
提交视频生成请求,获取 task_id
2
轮询查询任务结果
使用 task_id 定期查询任务状态,直到返回 SUCCEEDED 或 FAILED
#创建任务
POST /api/v1/services/aigc/video-generation/video-synthesis
请求头
Authorization: Bearer YOUR_API_KEYX-DashScope-Async: enableContent-Type: application/json请求参数
model必填模型名称,示例:wan2.5-i2v-preview, wan2.1-kf2v-plus
input.prompt必填文本提示词,描述期望生成的视频内容(最长2000字符)
input.img_url必填首帧图像的 URL 或 Base64 编码(支持 JPG、PNG、BMP、WEBP,最大10MB)
input.last_frame_url可选尾帧图像的 URL 或 Base64 编码(仅 wan2.1-kf2v-plus 支持,最大10MB)
input.audio_url可选音频文件 URL(仅 wan2.5-i2v-preview 支持,3-30秒,wav/mp3 格式)
parameters.resolution可选视频分辨率:480P、720P、1080P(默认:1080P)
parameters.duration可选视频时长:5秒或10秒(默认:5秒)
parameters.audio可选是否自动配音(默认:true,仅 wan2.5-i2v-preview 支持)
parameters.prompt_extend可选是否启用智能改写(默认:true)
示例代码
cURL (基础生成)
curl -X POST 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
-H 'X-DashScope-Async: enable' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "wan2.5-i2v-preview",
"input": {
"prompt": "一只小猫在草地上奔跑",
"img_url": "https://example.com/cat.jpg"
},
"parameters": {
"resolution": "1080P",
"duration": 5,
"audio": true,
"prompt_extend": true
}
}'Python (首尾帧生成)
from dashscope import VideoSynthesis
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
rsp = VideoSynthesis.call(
api_key="YOUR_API_KEY",
model='wan2.1-kf2v-plus',
prompt='一只小猫从草地跑到树下',
img_url="https://example.com/start.jpg",
last_frame_url="https://example.com/end.jpg",
resolution="720P",
duration=5,
prompt_extend=True
)
print(rsp)响应示例
{
"output": {
"task_status": "PENDING",
"task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
},
"request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}💡 请保存 task_id,用于查询任务状态与结果(有效期24小时)
#查询任务结果
GET /api/v1/tasks/{task_id}
轮询建议
- 视频生成过程约需数分钟,建议每15秒轮询一次
- 任务状态流转:PENDING(排队中)→ RUNNING(处理中)→ SUCCEEDED(成功)/ FAILED(失败)
- 任务成功后返回视频链接,有效期为 24 小时,请及时下载保存
轮询示例
import time
from dashscope import VideoSynthesis
# 创建任务
rsp = VideoSynthesis.call(...)
task_id = rsp.output.task_id
# 轮询查询结果
while True:
result = VideoSynthesis.fetch(task_id=task_id)
status = result.output.task_status
if status == 'SUCCEEDED':
print("视频生成成功!")
print("视频URL:", result.output.video_url)
break
elif status == 'FAILED':
print("生成失败:", result.message)
break
else:
print(f"当前状态: {status},等待中...")
time.sleep(15) # 每15秒查询一次成功响应
{
"request_id": "2ca1c497-f9e0-449d-9a3f-xxxxxx",
"output": {
"task_id": "af6efbc0-4bef-4194-8246-xxxxxx",
"task_status": "SUCCEEDED",
"submit_time": "2025-09-25 11:07:28.590",
"scheduled_time": "2025-09-25 11:07:35.349",
"end_time": "2025-09-25 11:17:11.650",
"video_url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.mp4",
"orig_prompt": "一只小猫在草地上奔跑",
"actual_prompt": "一只橘色小猫在绿色草地上快速奔跑..."
},
"usage": {
"duration": 5,
"video_count": 1,
"SR": 1080
}
}任务状态说明
PENDING任务排队中
RUNNING任务处理中
SUCCEEDED任务执行成功
FAILED任务执行失败
#使用限制
数据时效:任务 task_id 和视频 url 均只保留 24 小时,过期后将无法查询或下载
音频支持:wan2.5-i2v-preview 支持有声视频,wan2.2 及以下版本仅输出无声视频
内容审核:输入和输出均会经过内容安全审核,违规内容将返回错误
图像限制:支持 JPEG、JPG、PNG、BMP、WEBP 格式,宽高范围 [360, 2000] 像素,最大 10MB
音频限制:支持 wav、mp3 格式,时长 3-30秒,最大 15MB