图生视频-基于首帧
以首帧图为起点按提示词生成视频。异步任务接口,提交后返回 task_id,需轮询任务状态获取结果。
以一张首帧图为起点,按提示词生成后续动作视频。支持最长 15 秒、最高 1080P 分辨率。
异步任务型接口:提交后立即返回 task_id,需轮询任务状态,成功后再下载视频。
Base URL
https://api.autorouter.top— Production
Authentication
BearerAuth: http (bearer)
使用 Bearer Token 认证。
格式: Authorization: Bearer sk-xxxxxx
Endpoints
POST /api/v1/services/aigc/video-generation/video-synthesis
创建视频生成任务
以首帧图为起点创建视频生成任务。
请求头需设置 X-DashScope-Async: enable。
Request Body
Content-Type: application/json
Example:
{
"model": "happyhorse-1.1-i2v",
"input": {
"prompt": "一只猫在草地上奔跑",
"media": [
{
"type": "first_frame",
"url": "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
}
]
},
"parameters": {
"resolution": "720P",
"duration": 5
}
}Properties:
| Name | Type | Required | Description |
|---|---|---|---|
model | string | Yes | 模型名称。可选值:happyhorse-1.1-i2v、happyhorse-1.0-i2v |
input | object | Yes | 基础输入信息,如提示词、图像等 |
input.prompt | string | No | 文本提示词,用于描述期望生成的视频内容。支持任何语言,长度不超过 5000 个非中文字符或 2500 个中文字符,超过部分将自动截断 |
input.media | array | Yes | 输入媒体列表,用于指定图像以生成视频。必须且只能包含 1 张 type 为 first_frame 的图像 |
input.media[].type | string | Yes | 媒体素材类型。可选值:first_frame(视频的起始帧) |
input.media[].url | string | Yes | 媒体素材 URL。支持公网 HTTP/HTTPS 链接,或 Base64 编码字符串(格式:data:{MIME_type};base64,{base64_data})。图像限制:格式 JPEG/JPG/PNG/WEBP;宽和高不小于 300 像素;宽高比 1:2.5~2.5:1;不超过 20MB |
parameters | object | No | 视频处理参数,如分辨率、时长等 |
parameters.resolution | string | No | 分辨率档位,用于控制视频清晰度(总像素)。模型会在接近首帧宽高比的前提下,将视频缩放至所选档位的总像素。可选值:480P、720P、1080P(默认) |
parameters.duration | integer | No | 视频时长(秒),取值 [3, 15] 之间的整数,默认 5 |
parameters.watermark | boolean | No | 是否添加水印(右下角固定文案 "Happy Horse")。true(默认)添加,false 不添加 |
parameters.seed | integer | No | 随机数种子,取值 [0, 2147483647]。未指定时系统自动生成。固定 seed 可提升可复现性,但不保证完全一致 |
Responses
200: 成功创建任务
Content-Type: application/json
400: 请求参数错误
Content-Type: application/json
429: 请求频率限制
Content-Type: application/json
请求示例
curl -X POST "https://api.autorouter.top/api/v1/services/aigc/video-generation/video-synthesis" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxx" \
-H "X-DashScope-Async: enable" \
-d '{
"model": "happyhorse-1.1-i2v",
"input": {
"prompt": "一只猫在草地上奔跑",
"media": [
{
"type": "first_frame",
"url": "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
}
]
},
"parameters": {
"resolution": "720P",
"duration": 5
}
}'响应示例
{
"output": {
"task_status": "PENDING",
"task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
},
"request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}响应字段说明:
| Name | Type | Description |
|---|---|---|
output | object | 任务输出信息 |
output.task_id | string | 任务 ID,可用于查询任务状态,有效期 24 小时 |
output.task_status | string | 任务状态。枚举值:PENDING(排队中)、RUNNING(处理中)、SUCCEEDED(成功)、FAILED(失败)、CANCELED(已取消)、UNKNOWN(不存在或状态未知) |
request_id | string | 本次请求的唯一标识,用于追踪与排查问题 |
code | string | 错误码,仅请求失败时返回 |
message | string | 错误信息,仅请求失败时返回 |
GET /api/v1/tasks/{task_id}
根据任务ID查询结果
根据创建任务时返回的 task_id 查询任务状态与结果。查询有效期 24 小时。
Headers
| Name | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | 请求身份认证。格式:Bearer sk-xxxxxx |
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
task_id | string | Yes | 任务 ID |
Responses
200: 成功查询任务
Content-Type: application/json
400: 请求参数错误
Content-Type: application/json
429: 请求频率限制
Content-Type: application/json
请求示例
curl -X GET "https://api.autorouter.top/api/v1/tasks/{task_id}" \
-H "Authorization: Bearer sk-xxxxxx"响应示例
{
"request_id": "99243b47-ec5f-9413-9993-xxxxxx",
"output": {
"task_id": "4673458e-28be-4a05-bf2a-xxxxxx",
"task_status": "SUCCEEDED",
"submit_time": "2026-04-20 17:55:17.075",
"scheduled_time": "2026-04-20 17:55:17.129",
"end_time": "2026-04-20 17:56:36.658",
"orig_prompt": "一只猫在草地上奔跑",
"video_url": "https://dashscope-result.oss-cn-beijing.aliyuncs.com/xxx.mp4?Expires=xxx"
},
"usage": {
"duration": 5,
"input_video_duration": 0,
"output_video_duration": 5,
"video_count": 1,
"SR": 720
}
}响应字段说明:
| Name | Type | Description |
|---|---|---|
output | object | 任务输出信息 |
output.task_id | string | 任务 ID,查询有效期 24 小时 |
output.task_status | string | 任务状态。枚举值:PENDING(排队中)、RUNNING(处理中)、SUCCEEDED(成功)、FAILED(失败)、CANCELED(已取消)、UNKNOWN(不存在或状态未知)。轮询过程中状态流转一般为 PENDING → RUNNING → SUCCEEDED / FAILED |
output.submit_time | string | 任务提交时间,格式 YYYY-MM-DD HH:mm:ss.SSS |
output.scheduled_time | string | 任务执行时间,格式 YYYY-MM-DD HH:mm:ss.SSS |
output.end_time | string | 任务完成时间,格式 YYYY-MM-DD HH:mm:ss.SSS |
output.video_url | string | 视频下载 URL,仅 task_status 为 SUCCEEDED 时返回。链接有效期 24 小时,视频为 MP4(H.264) |
output.orig_prompt | string | 原始提示词,对应请求参数 prompt |
output.code | string | 错误码,仅任务失败时返回 |
output.message | string | 错误信息,仅任务失败时返回 |
usage | object | 输出统计信息,仅成功时返回 |
usage.input_video_duration | integer | 输入视频时长(秒) |
usage.output_video_duration | integer | 输出视频时长(秒) |
usage.duration | integer | 用于计费的总视频时长(秒),值为 input_video_duration + output_video_duration |
usage.SR | integer | 输出视频分辨率档位 |
usage.video_count | integer | 输出视频数量,固定为 1 |
request_id | string | 本次请求的唯一标识,用于追踪与排查问题 |
错误处理
HTTP 400 参数错误(提交前拦截,不扣费)
AutoRouter 在提交到上游前会对必填字段做基础校验:
| 场景 | 响应 |
|---|---|
未传 input.media 或缺少 first_frame | {"code":"InvalidParameter","message":"...","request_id":"..."} |
| 未知模型名 | {"code":"InvalidParameter","message":"unknown model: ...","request_id":"..."} |
HTTP 401 / 403 鉴权错误
401 Unauthorized:API Key 无效或已过期403 Forbidden:API Key 无权访问此模型(检查 token 的模型白名单)
HTTP 402 余额不足
返回 insufficient user quota。请前往 AutoRouter 控制台充值。
任务 FAILED 状态
任务成功提交但上游生成失败(output.task_status == "FAILED"),常见原因见 output.code / output.message:
| 原因 | 处理建议 |
|---|---|
| 内容审核失败 | 调整 prompt,避免敏感内容 |
| 未提供首帧图 | media 中必须且只能包含 1 个 type: first_frame 元素 |
| 媒体 URL 不可访问 | 确保 URL 公开可访问、未过期 |
| 媒体文件不符规格 | 参考 Request Body 中图像限制 |
| 参数组合非法(如分辨率不支持) | 按 Request Body 规范传参 |
任务 FAILED 时 AutoRouter 会自动退款到你的账户,可在日志页面查询退款记录。