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_KEY
X-DashScope-Async: enable
Content-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