本文介绍 viduq2 系列模型(viduq2-pro、viduq2-turbo、viduq2-pro-fast)的 start-end2video 模式核心 API(异步提交任务、查询任务状态),详细说明各接口的请求地址、输入输出参数、调用示例、参数差异及注意事项,供接口调用时查阅参考。
1. 认证方式
所有接口均采用 API Key 认证,统一使用 Authorization 请求头,格式如下:
Authorization: \<YOUR\_API\_KEY\>
说明:将 \<YOUR\_API\_KEY\> 替换为您实际的 API Key 即可完成认证,确保接口调用权限。
2. 异步提交任务接口
该接口用于提交 viduq2 系列模型首尾帧生视频(start-end2video)异步任务,需传入模型名称、首帧图片、尾帧图片、接口类型等核心参数,可根据模型特性配置视频时长、分辨率等辅助参数,提交成功后返回任务唯一标识及请求唯一标识,后续可通过任务标识查询任务状态及视频生成结果。
2.1 接口地址
https://api.modelverse.cn/v1/tasks/submit
2.2 输入参数
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,可选值:viduq2-pro、viduq2-turbo、viduq2-pro-fast;各模型特性如下:- viduq2-pro:新模型,效果好,细节丰富- viduq2-turbo:新模型,效果好,生成快- viduq2-pro-fast:价格触底、效果稳定,生成速度较viduq2-turbo提高2-3倍 |
| input.first_frame_url | string | 是 | 首帧图片,支持图片 URL 或 Base64 编码 |
| input.last_frame_url | string | 是 | 尾帧图片,支持图片 URL 或 Base64 编码 |
| input.prompt | string | 否 | 文本提示词,用于指导视频生成,最长支持 2000 字符 |
| parameters.vidu_type | string | 是 | Vidu 接口类型,此处固定为 start-end2video |
| parameters.duration | int | 否 | 视频时长参数,不同模型默认值及可选范围一致:- viduq2-pro、viduq2-turbo、viduq2-pro-fast:默认 5 秒,可选:1、2、3、4、5、6、7、8 秒 |
| parameters.seed | int | 否 | 随机种子,默认值为 0,0 表示使用随机数 |
| parameters.resolution | string | 否 | 分辨率参数,不同模型默认值及可选范围如下:- viduq2-pro(1-8秒):默认 720p,可选:540p、720p、1080p- viduq2-turbo(1-8秒):默认 720p,可选:540p、720p、1080p- viduq2-pro-fast(1-8秒):默认 720p,可选:720p、1080p |
| parameters.movement_amplitude | string | 否 | 运动幅度,可选值:auto、small、medium、large,默认值为 auto |
| parameters.bgm | bool | 否 | 是否添加背景音乐,默认值为 false |
2.3 调用注意事项
如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具,避免命令行调用出现兼容问题。
图片及参数相关要求: 1. 必须同时提供 first_frame_url 和 last_frame_url 两个参数 2. 首尾帧两张图的分辨率需相近,首帧分辨率/尾帧分辨率需在 0.8~1.25 之间 3. 图片支持 png、jpeg、jpg、webp 格式 4. 图片比例需要小于 1:4 或者 4:1 5. 图片大小不超过 50 MB 6. Base64 编码格式示例:data:image/png;base64,{base64_encode}
2.4 请求示例(curl)
curl --location --globoff 'https://api.modelverse.cn/v1/tasks/submit' \
--header 'Authorization: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "viduq2-pro",
"input": {
"first_frame_url": "https://umodelverse-inference.cn-wlcb.ufileos.com/ucloud-maxcot.jpg",
"last_frame_url": "https://umodelverse-inference.cn-wlcb.ufileos.com/ucloud-maxcot.jpg",
"prompt": "Continue the video with smooth camera movement."
},
"parameters": {
"vidu_type": "start-end2video",
"duration": 5,
"resolution": "1080p",
"movement_amplitude": "auto",
"bgm": true
}
}'
2.5 输出参数
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识,用于后续查询任务状态及获取生成结果 |
| request_id | string | 本次请求的唯一标识,用于问题排查时定位具体请求记录 |
2.6 响应示例
{
"output": {
"task_id": "task_id"
},
"request_id": "request_id"
}
3. 查询任务状态接口
该接口用于查询已提交异步任务的执行状态、视频生成结果、任务耗时及相关信息,需传入异步提交任务时返回的 task_id 作为查询标识,根据任务状态返回对应信息(成功返回视频URL,失败返回错误信息)。
3.1 接口地址
https://api.modelverse.cn/v1/tasks/status?task_id=<task_id>
说明:将 \<task\_id\> 替换为异步提交任务接口返回的实际 task_id,即可发起查询。
3.2 输入参数
输入参数通过 URL 路径参数传递,具体说明如下:
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| task_id | string | 是 | 异步任务的唯一标识,由异步提交任务接口返回,用于定位查询具体任务 |
3.3 请求示例(curl)
curl --location 'https://api.modelverse.cn/v1/tasks/status?task_id=<task_id>' \
--header 'Authorization: <YOUR_API_KEY>'
3.4 输出参数
| 参数 | 类型 | 描述 |
|---|---|---|
| output.task_id | string | 异步任务的唯一标识,与查询时传入的 task_id 一致 |
| output.task_status | string | 任务状态,可选值:Pending(待处理)、Running(执行中)、Success(成功)、Failure(失败) |
| output.urls | array | 视频结果的 URL 列表,仅当 task_status 为 Success 时返回,可通过该 URL 下载生成的视频 |
| output.submit_time | integer | 任务提交时间戳(单位:秒) |
| output.finish_time | integer | 任务完成时间戳(单位:秒),仅当 task_status 为 Success 或 Failure 时返回 |
| output.error_message | string | 任务失败时返回的错误信息,仅当 task_status 为 Failure 时返回,用于排查失败原因 |
| usage.duration | integer | 视频时长(秒) |
| request_id | string | 本次查询请求的唯一标识,用于问题排查时定位具体查询记录 |
3.5 响应示例
3.5.1 成功响应示例
{
"output": {
"task_id": "task_id",
"task_status": "Success",
"urls": ["https://xxxxx/xxxx.mp4"],
"submit_time": 1756959000,
"finish_time": 1756959050
},
"usage": {
"duration": 5
},
"request_id": ""
}
3.5.2 失败响应示例
{
"output": {
"task_id": "task_id",
"task_status": "Failure",
"submit_time": 1756959000,
"finish_time": 1756959019,
"error_message": "error_message"
},
"usage": {
"duration": 5
},
"request_id": ""
}