Wan 2.7
Wan 2.7 是阿里巴巴的视频生成与编辑模型,支持文生视频、图生视频(首/尾帧)、参考生视频,以及基于指令的视频编辑,带音画同步,可输出 720p 或 1080p。
模型
| 模型名 | 模式 |
|---|---|
wan-2.7-text-to-video | 文生视频 |
wan-2.7-image-to-video | 图生视频(基于首/尾帧) |
wan-2.7-reference-to-video | 参考生视频(参考图片与参考视频) |
wan-2.7-video-edit | 视频编辑 |
计费
按每秒 × 分辨率计费:
| 分辨率 | 积分/秒 |
|---|---|
720p | 24 |
1080p | 40 |
视频编辑计费:duration 为 0(默认)时,输出等于完整输入视频时长,按输入视频实际时长计费;duration 为 2-10 时,按该值计费。
创建任务
POST https://api.aivideoapi.ai/v1/videos/generations
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 上表中的模型名之一 |
input | object | 是 | 生成或编辑参数 |
callback_url | string | 否 | 任务完成/失败的回调通知地址 |
公共 Input
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
prompt | string | 视模式而定 | 文本提示词,最长 5000 字符 |
negative_prompt | string | 否 | 反向提示词,最长 500 字符 |
resolution | string | 否 | 720p 或 1080p |
prompt_extend | boolean | 否 | 是否启用提示词扩写,默认 true |
watermark | boolean | 否 | 是否添加水印,默认 false |
seed | integer | 否 | 0 到 2147483647 之间的整数 |
文生视频 Input
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
prompt | string | 是 | 文本提示词 |
aspect_ratio | string | 否 | 16:9、9:16、1:1、4:3、3:4;默认 16:9 |
duration | integer | 否 | 2-15 秒,默认 5 |
audio_urls | string[] | 否 | 参考音频 URL(取第一个) |
默认分辨率为 1080p。
图生视频 Input
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
prompt | string | 是 | 文本提示词 |
image_urls | string[] | 是 | 1-2 个图片 URL(JPEG/PNG/WEBP)。第一个为首帧,可选的第二个为尾帧。 |
first_clip_url | string | 否 | 引导视频片段 URL(MP4/MOV/MKV) |
audio_urls | string[] | 否 | 驱动音频 URL(取第一个) |
duration | integer | 否 | 2-15 秒,默认 5 |
输出宽高比由首帧图片决定。默认分辨率为 1080p。
参考生视频 Input
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
prompt | string | 是 | 文本提示词;可用 [Image 1]、[Image 2] 等按顺序引用 image_urls |
image_urls | string[] | 否* | 参考图片 URL 数组(JPEG/PNG/WEBP) |
video_urls | string[] | 否* | 参考视频 URL 数组(MP4/MOV) |
first_frame_url | string | 否 | 首帧图片 URL;输出按其宽高比生成 |
audio_urls | string[] | 否 | 参考音色音频 URL,用于指定主角音色(取第一个) |
aspect_ratio | string | 否 | 16:9、9:16、1:1、4:3、3:4;默认 16:9 |
duration | integer | 否 | 2-10 秒,默认 5 |
* image_urls 与 video_urls 至少传一个非空,且二者合计不超过 5 个。默认分辨率为 1080p。
视频编辑 Input
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
video_urls | string[] | 是 | 源视频 URL,恰 1 个(MP4/MOV) |
prompt | string | 否 | 编辑指令 |
image_urls | string[] | 否 | 参考图片 URL(取第一个) |
aspect_ratio | string | 否 | 16:9、9:16、1:1、4:3、3:4;默认 16:9 |
audio_setting | string | 否 | auto(模型自行决定)或 origin(保留源音频);默认 auto |
duration | integer | 否 | 0(完整输入时长)或 2-10(片段时长);默认 0 |
默认分辨率为 720p。当 duration 为 0 时,按输入视频实际时长计费。
示例
文生视频
curl -X POST https://api.aivideoapi.ai/v1/videos/generations \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-2.7-text-to-video",
"callback_url": "https://your-server.com/webhook",
"input": {
"prompt": "雨夜霓虹街道的电影感跟拍镜头",
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": 5
}
}'
图生视频
curl -X POST https://api.aivideoapi.ai/v1/videos/generations \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-2.7-image-to-video",
"callback_url": "https://your-server.com/webhook",
"input": {
"prompt": "女孩缓缓转头,镜头轻轻推进",
"image_urls": ["https://example.com/first.png", "https://example.com/last.png"],
"resolution": "1080p",
"duration": 5
}
}'
参考生视频
curl -X POST https://api.aivideoapi.ai/v1/videos/generations \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-2.7-reference-to-video",
"callback_url": "https://your-server.com/webhook",
"input": {
"prompt": "[Image 1] 中的角色拿起一个折扇,镜头缓慢推近。",
"image_urls": ["https://example.com/ref.jpg"],
"video_urls": ["https://example.com/ref.mp4"],
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": 9
}
}'
视频编辑
curl -X POST https://api.aivideoapi.ai/v1/videos/generations \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-2.7-video-edit",
"callback_url": "https://your-server.com/webhook",
"input": {
"prompt": "把花瓶改成粉色。",
"video_urls": ["https://example.com/input.mp4"],
"resolution": "720p",
"duration": 0,
"audio_setting": "auto"
}
}'
响应
{
"code": 200,
"msg": "success",
"data": {
"taskId": "8b6a5162-5c91-4a42-8e80-4c8ef5486f24"
}
}
查询任务
curl https://api.aivideoapi.ai/v1/tasks/{taskId} \
-H "Authorization: Bearer sk-your-api-key"
状态流转:pending -> processing -> completed 或 failed。
任务失败时,预扣的积分将自动退还。
常见错误码
请求失败时,API 返回 JSON 格式的错误响应:
{
"error": {
"code": "insufficient_credits",
"message": "Your credit balance is too low. Please top up.",
"type": "billing_error"
}
}
错误码一览
| HTTP 状态码 | 错误码 | 类型 | 说明 |
|---|---|---|---|
| 400 | invalid_request | invalid_request_error | 缺少必填参数或参数无效 |
| 401 | invalid_api_key | authentication_error | API Key 无效、已禁用或已删除 |
| 402 | insufficient_credits | billing_error | 积分余额不足,请充值 |
| 403 | ip_not_allowed | permission_error | 请求 IP 不在 Key 的白名单中 |
| 404 | model_not_found | invalid_request_error | 模型不存在或已停用 |
| 404 | task_not_found | invalid_request_error | 任务 ID 不存在 |
| 429 | rate_limit_exceeded | rate_limit_error | 请求过于频繁,请降低频率 |
| 429 | spend_limit_exceeded | billing_error | 达到 Key 的消费限额(每小时/每天/总量) |
| 500 | internal_error | api_error | 服务器内部错误 |
| 503 | upstream_error | upstream_error | 上游 AI 服务返回错误 |
常见场景
invalid_request (400)
缺少必填字段或参数格式错误时返回。
{
"error": {
"code": "invalid_request",
"message": "'model' is required.",
"type": "invalid_request_error"
}
}
insufficient_credits (402)
积分不足。可通过 GET /v1/credits 查询余额,前往 Dashboard > Billing 充值。
invalid_api_key (401)
可能原因:
- Key 不以
sk-开头 - Key 已被禁用或删除
- 用户账户已被封禁
upstream_error (503)
上游 AI 服务返回错误,可能原因:
- 输入内容包含敏感或违规信息
- 上游服务暂时不可用
- 请求参数不被上游支持
因上游错误导致任务失败时,预扣积分会自动退还。