跳转到主要内容
首尾帧

Vidu — 创建任务

提交首尾帧生视频任务,使用 Vidu 模型基于首帧和尾帧图像生成过渡视频。

POST
/services/aigc/video-generation/video-synthesis
cURL
curl --location 'https://maas.qianwenaiapi.com/api/v1/services/aigc/video-generation/video-synthesis' \
  -H 'X-DashScope-Async: enable' \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "vidu/viduq3-turbo_start-end2video",
  "input": {
    "media": [
      {
        "type": "image",
        "url": "https://wanx.alicdn.com/material/20250318/first_frame.png"
      },
      {
        "type": "image",
        "url": "https://wanx.alicdn.com/material/20250318/last_frame.png"
      }
    ],
    "prompt": "一只小猫从窗台向下跳跃,轻盈地落在沙发上,然后好奇地环顾四周。"
  },
  "parameters": {
    "resolution": "540P",
    "duration": 5,
    "watermark": true
  }
}'
{
  "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx",
  "output": {
    "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx",
    "task_status": "PENDING"
  }
}
以首帧图像和尾帧图像为输入,由模型插值生成两帧之间的过渡视频。

支持模型

模型最高分辨率最长时长
vidu/viduq3-pro_start-end2video1080P16 s
vidu/viduq3-turbo_start-end2video1080P16 s
vidu/viduq2-pro_start-end2video1080P10 s
vidu/viduq2-turbo_start-end2video1080P10 s

图像要求

  • 格式:JPG、PNG 或 WEBP
  • 宽高比:1:4 至 4:1
  • 文件大小:每张图像不超过 50 MB
  • 帧一致性:首帧和尾帧的总像素数(宽×高)比值需在 0.8~1.25 之间

轮询结果

本接口为异步接口。提交任务后:
  1. 记录响应中的 task_id。
  2. 每隔 15 秒调用查询视频结果接口轮询。
  3. 当 task_status 为 SUCCEEDED 时,从 output.video_url 下载生成的视频。
  • Python SDK
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
import os

# 若没有配置环境变量,请用千问AI平台API Key将下行替换为:api_key="sk-xxx"
# 获取API Key:https://platform.qianwenai.com/home/api-keys
api_key = os.getenv("DASHSCOPE_API_KEY")

media = [{'type': 'image', 'url': 'https://wanx.alicdn.com/material/20250318/first_frame.png'}, {'type': 'image', 'url': 'https://wanx.alicdn.com/material/20250318/last_frame.png'}]

def sample_async_call():
    # 异步提交视频生成任务
    rsp = VideoSynthesis.async_call(api_key=api_key,
                                model='vidu/viduq3-turbo_start-end2video',
                                media=media,
                                prompt='一只小猫从窗台向下跳跃,轻盈地落在沙发上,然后好奇地环顾四周。',
                                resolution='540P',
                                duration=5,
                                watermark=True)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print("task_id: %s" % rsp.output.task_id)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

    # 查询任务状态
    status = VideoSynthesis.fetch(task=rsp, api_key=api_key)
    if status.status_code == HTTPStatus.OK:
        print(status.output.task_status)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (status.status_code, status.code, status.message))

    # 等待任务完成
    rsp = VideoSynthesis.wait(task=rsp, api_key=api_key)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output.video_url)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

if __name__ == '__main__':
    sample_async_call()

鉴权

string
header
必填

千问AI平台 API Key。详见获取 API Key。

Header 参数

enum<string>
必填

异步处理配置参数。HTTP 请求只支持异步,必须设置为 enable。缺少此请求头将报错:"current user api does not support synchronous calls"。

enable

请求体

application/json
enum<string>
必填

模型名称。

| 模型 | 最高分辨率 | 最长时长 | |------|-----------|----------| | vidu/viduq3-pro_start-end2video | 1080P | 16 s | | vidu/viduq3-turbo_start-end2video | 1080P | 16 s | | vidu/viduq2-pro_start-end2video | 1080P | 10 s | | vidu/viduq2-turbo_start-end2video | 1080P | 10 s |

vidu/viduq3-pro_start-end2video,vidu/viduq3-turbo_start-end2video,vidu/viduq2-pro_start-end2video,vidu/viduq2-turbo_start-end2video
vidu/viduq3-turbo_start-end2video
object
必填

输入的基本信息,包含首帧、尾帧图像和提示词。

object
必填

视频生成参数。

响应

200-application/json
string

请求唯一标识,可用于请求明细溯源和问题排查。

4909100c-7b5a-9f92-bfe5-xxxxxx
object