接口说明
Ling.AI 已将“通用视频生成与编辑”按能力入口拆成多条模型记录。客户端统一调用 POST /v1/videos/generations,网关会根据后台模型配置中的 operation、model_code、base_url 与价格规则,自动转发到百炼对应的文生视频、图生视频、参考生视频或通用视频编辑接口。
POST
/v1/videos/generations
Authorization / x-api-key / x-goog-api-key
任务与账务
视频接口通常是异步任务:提交阶段产生任务记录,完成后由任务链路补齐 usage 与结算摘要。生成结果 URL 常有有效期限制,业务侧应在任务成功后及时转存。
模型拆分
| 对外 model_id | 上游 model_code | operation | 能力说明 |
|---|---|---|---|
wan2.6-t2v_t2v |
wan2.6-t2v |
t2v |
文生视频 |
wan2.6-i2v_i2v |
wan2.6-i2v |
i2v |
图生视频,基于首帧 |
wan2.2-kf2v-flash_kf2v |
wan2.2-kf2v-flash |
kf2v |
图生视频,基于首尾帧 |
wan2.6-r2v_r2v |
wan2.6-r2v |
r2v |
参考生视频 |
wanx2.1-vace-plus_vace |
wanx2.1-vace-plus |
vace |
通用视频编辑 |
路由规则
视频层当前统一走 /v1/videos/generations,真正的差异由模型记录中的 t2v、i2v、kf2v、r2v、vace 决定。也就是说,对外 model 是“模型 + 能力入口”的组合,而不是单纯的上游模型名。
文生视频能力
以 wan2.6-t2v 为代表的万相-文生视频模型支持文本与音频输入,可生成最长 15 秒、最高 1080P 的视频。对于 wan2.5 和 wan2.6 系列,既支持传入 audio_url 实现声画同步,也支持不传音频时由模型进行自动配音。其中,多镜头叙事仅 wan2.6 支持,调用时通常需要 shot_type=multi 且 prompt_extend=true。
| 模型 | 能力 | 典型规格 | 备注 |
|---|---|---|---|
wan2.6-t2v |
有声视频、多镜头叙事、声画同步 | 720P / 1080P,2-15 秒 | 主推荐型号 |
wan2.5-t2v-preview |
有声视频、声画同步 | 480P / 720P / 1080P,5 秒或 10 秒 | 适合快速试用 |
wan2.2-t2v-plus |
无声视频 | 480P / 1080P,5 秒 | 稳定性较高 |
wanx2.1-t2v-turbo |
无声视频 | 480P / 720P,5 秒 | 速度优先 |
wanx2.1-t2v-plus |
无声视频 | 720P,5 秒 | 质量优先 |
wan2.6-t2v-us |
有声视频、多镜头叙事、声画同步 | 720P / 1080P,5 秒、10 秒、15 秒 | 美国部署模式 |
SDK 版本
若通过 SDK 接入万相文生视频,建议至少使用 DashScope Python SDK 1.25.8 和 DashScope Java SDK 2.22.6,否则可能出现 URL 相关错误。
图生视频能力
以 wan2.6-i2v-flash 和 wan2.6-i2v 为代表的万相-图生视频模型支持文本、图像、音频多模态输入。常规调用至少需要传入首帧图像 img_url,并通过 resolution 指定输出分辨率。对于 wan2.5 和 wan2.6 系列,既可以传入 audio_url 实现声画同步,也支持自动配音;若使用 wan2.6-i2v-flash 且希望输出无声视频,需要显式传入 audio=false。另外,wanx2.1-i2v-turbo 和 wanx2.1-i2v-plus 支持视频特效模板,例如 template=flying,也就是“魔法悬浮”;部分场景还可使用“气球膨胀”等模板。相关上游说明可参考 image-to-video-api-reference。
| 模型 | 能力 | 典型规格 | 备注 |
|---|---|---|---|
wan2.6-i2v-flash |
有声 / 无声视频、多镜头叙事、声画同步 | 720P / 1080P,2-15 秒 | 支持 audio=false 强制无声输出 |
wan2.6-i2v |
有声视频、多镜头叙事、声画同步 | 720P / 1080P,2-15 秒 | 高质量优先 |
wan2.5-i2v-preview |
有声视频、声画同步 | 480P / 720P / 1080P,5 秒或 10 秒 | 适合快速试用 |
wan2.2-i2v-flash |
无声视频 | 480P / 720P / 1080P,5 秒 | 速度优先 |
wan2.2-i2v-plus |
无声视频 | 480P / 1080P,5 秒 | 稳定性更高 |
wanx2.1-i2v-turbo |
无声视频、模板特效 | 480P / 720P,3-5 秒 | 支持 template,如 flying |
wanx2.1-i2v-plus |
无声视频、模板特效 | 720P,5 秒 | 支持“魔法悬浮”、“气球膨胀”等特效模板 |
wan2.6-i2v-us |
有声视频、多镜头叙事、声画同步 | 720P / 1080P,5 秒、10 秒、15 秒 | 美国部署模式 |
首尾帧视频能力
kf2v 用于基于首帧图像、尾帧图像和提示词生成平滑过渡的视频。当前主力模型是 wan2.2-kf2v-flash,输出固定为 5 秒 无声视频;较旧但仍可用的模板特效模型是 wanx2.1-kf2v-plus。常规模式下需传入 first_frame_url 与 last_frame_url;如果走模板特效模式,可只传首帧并指定 template,例如 template=mech1,对应“机械觉醒”。相关上游说明可参考 image-to-video-by-first-and-last-frame-api-reference。
| 模型 | 能力 | 典型规格 | 备注 |
|---|---|---|---|
wan2.2-kf2v-flash |
无声视频,首尾帧平滑过渡 | 480P / 720P / 1080P,5 秒 | 当前推荐型号 |
wanx2.1-kf2v-plus |
无声视频,模板特效 | 720P,5 秒 | 支持 template,如 mech1(机械觉醒) |
参考生视频能力
r2v 用于把图像或视频中的人物、物体当作主角,根据提示词生成新的表演视频。当前主要模型为 wan2.6-r2v-flash 与 wan2.6-r2v,支持最多 5 个参考素材,其中视频最多 3 个,常见提示词会通过 character1、character2 这类占位符引用 reference_urls 里的角色。该能力支持单角色表演和多角色互动,时长范围通常是 2-10 秒,分辨率支持 720P 与 1080P。若使用 wan2.6-r2v-flash 且希望输出无声视频,可以显式设置 audio=false。相关上游说明可参考 wan-video-to-video-api-reference。
| 模型 | 能力 | 典型规格 | 备注 |
|---|---|---|---|
wan2.6-r2v-flash |
有声 / 无声视频、单角色 / 多角色、多镜头叙事 | 720P / 1080P,2-10 秒 | 生成更快,支持 audio=false |
wan2.6-r2v |
有声视频、单角色 / 多角色、多镜头叙事 | 720P / 1080P,2-10 秒 | 质量优先 |
通用视频编辑能力
vace 是万相视频编辑统一模型,支持文本、图像、视频多模态输入,可覆盖多图参考、视频重绘、局部编辑、视频延展、视频画面扩展五类能力。中国内地推荐模型是 wanx2.1-vace-plus,国际部署模式对应模型是 wan2.1-vace-plus。两者输出均为无声视频,分辨率档位固定为 720P,视频时长 不超过5s。相关上游说明可参考 wanx-vace-api-reference。
| 模型 | 能力 | 典型规格 | 备注 |
|---|---|---|---|
wanx2.1-vace-plus |
无声视频,多图参考、视频重绘、局部编辑、视频延展、视频画面扩展 | 720P,不超过5s | 中国内地部署模式 |
wan2.1-vace-plus |
无声视频,多图参考、视频重绘、局部编辑、视频延展、视频画面扩展 | 720P,不超过5s | 国际部署模式 |
异步任务
通用视频生成与编辑模型通常为异步任务。若返回体中包含 task_id,可通过 GET /v1/tasks/{task_id} 查询状态。生成的视频 URL 一般只有 24 小时 有效期,请及时下载保存。
# 1. 提交文生视频任务
curl -X POST https://api.vip.lingapi.ai/v1/videos/generations \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.6-t2v_t2v",
"prompt": "夜晚城市天桥下,一位涂鸦少年高速说唱",
"audio_url": "https://example.com/rap.mp3",
"negative_prompt": "模糊,静止镜头",
"size": "1280*720",
"duration": 10,
"prompt_extend": true,
"watermark": false,
"shot_type": "multi"
}'
# 2. 查询任务状态
curl https://api.vip.lingapi.ai/v1/tasks/task_xxx \
-H "Authorization: Bearer sk-xxxxxxxx"
通用参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
model |
string | 是 | 必须是视频能力入口,例如 wan2.6-t2v_t2v、wan2.6-i2v_i2v、wanx2.1-vace-plus_vace |
prompt |
string | 否 | 视频描述文本。除少数纯模板任务外,建议始终传入 |
negative_prompt |
string | 否 | 不希望出现的内容。对 t2v、i2v、kf2v、r2v 有意义 |
duration |
integer | 否 | 视频时长(秒)。不同模型支持范围不同,例如 5s、10s、15s |
size |
string | 否 | 输出尺寸,例如 1280*720。主要用于 t2v、i2v、r2v、vace |
resolution |
string | 否 | 输出分辨率标记,例如 720p、1080p。主要用于 kf2v 与部分旧模型 |
prompt_extend |
boolean | 否 | 是否让上游自动扩写较短提示词 |
watermark |
boolean | 否 | 是否保留上游默认水印 |
audio_url |
string | 否 | 输入音频 URL,用于有声视频场景 |
audio |
boolean | 否 | 是否输出有声视频。常用于 r2v 等需要显式控制声音开关的场景 |
seed |
integer | 否 | 随机种子。上游支持时可用于提高可复现性 |
shot_type |
string | 否 | 镜头类型,例如 multi。主要用于多镜头叙事模型 |
按操作请求
| operation | 推荐模型 | 关键输入字段 | 说明 |
|---|---|---|---|
t2v |
wan2.6-t2v |
prompt、audio_url、size、duration |
文生视频,有声/无声均可 |
i2v |
wan2.6-i2v |
image_url、prompt、audio_url |
图生视频,基于首帧 |
kf2v |
wan2.2-kf2v-flash |
first_frame_url、last_frame_url、prompt |
图生视频,控制首尾帧过渡 |
r2v |
wan2.6-r2v |
reference_urls、prompt、size |
参考生视频,可用多个参考资源复刻角色与表演 |
vace |
wanx2.1-vace-plus |
function、video_url、prompt |
通用视频编辑,多图参考、重绘、局部编辑、延展、画面扩展统一走这里 |
文生视频专项说明
t2v当前主要面向万相文生视频系列。推荐模型是wan2.6-t2v,可做多镜头叙事。- 需要声画同步时,传入
audio_url;如果不传,wan2.5和wan2.6系列默认可自动配音。 - 需要多镜头叙事时,建议显式设置
shot_type为multi,同时开启prompt_extend。 - 不同地域支持的模型不同,模型、Endpoint URL 和 API Key 必须来自同一地域,否则会上游直接报错。
图生视频专项说明
i2v当前主要面向万相图生视频系列。推荐模型包括wan2.6-i2v-flash与wan2.6-i2v。- 常规图生视频请求至少需要
img_url和resolution;需要声画同步时再传audio_url。 - 如果使用
wan2.6-i2v-flash且要生成无声视频,请显式设置audio=false。 - 如果使用
wanx2.1-i2v-turbo或wanx2.1-i2v-plus做模板特效,可传template,例如flying,对应“魔法悬浮”。
首尾帧视频专项说明
kf2v常规模式下应同时传入first_frame_url和last_frame_url,并建议补充prompt描述过渡过程。- 当前这类模型输出固定为
5 秒,主要通过resolution控制清晰度,通过prompt_extend、watermark调整生成策略。 - 如果使用
wanx2.1-kf2v-plus的特效模板模式,可传template,例如mech1,对应“机械觉醒”。此时last_frame_url和prompt可省略。
参考生视频专项说明
r2v通过reference_urls传入参考素材,数组内最多5个 URL,其中视频最多3个。- 多角色场景建议在提示词中使用
character1、character2这类占位符,顺序与reference_urls一一对应。 shot_type支持multi和single。多角色互动更推荐multi,单镜头固定视角可用single。- 如果使用
wan2.6-r2v-flash且想生成纯视觉展示视频,可显式设置audio=false。
VACE 功能
vace 请求必须显式携带 function。当前建议使用以下取值:
image_reference:多图参考生成,常配合ref_images_url和obj_or_bgvideo_repainting:视频重绘,通常传video_url、control_condition、strengthvideo_edit:视频局部编辑,通常传video_url、mask_image_url、mask_video_url、mask_frame_idvideo_extension:视频延展,通常传first_clip_url、last_clip_url、first_frame_url或last_frame_urlvideo_outpainting:视频画面扩展,通常传video_url与top_scale/bottom_scale/left_scale/right_scale
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
function |
string | 是 | VACE 编辑函数,例如 video_edit 或 video_extension |
ref_images_url |
array<string> | 按需 | 多图参考输入,最多 3张 参考图。常用于 image_reference,也可作为其他 VACE 能力的参考图像输入 |
obj_or_bg |
array<string> | 按需 | 与 ref_images_url 一一对应,标记每张图是主体 obj 还是背景 bg |
video_url |
string | 按需 | 输入原视频 URL |
mask_image_url |
string | 按需 | 局部编辑使用的掩码图。白色区域为编辑区域,推荐优先使用该字段 |
mask_video_url |
string | 按需 | 局部编辑时的掩码视频,可与 mask_image_url 二选一 |
mask_frame_id |
integer | 按需 | 指定 mask_image_url 对应视频的哪一帧 |
mask_type |
string | 按需 | 局部编辑掩码模式,常用值包括 tracking 与 fixed |
expand_ratio |
number | 否 | 仅在 mask_type=tracking 时生效,用于扩展跟踪区域 |
control_condition |
string | 按需 | 视频重绘特征提取方式,可选 posebodyface、posebody、depth、scribble |
strength |
number | 按需 | 视频重绘特征强度,范围通常为 0.0-1.0 |
first_clip_url |
string | 按需 | 视频延展的起始片段,通常用于向后延展 |
last_clip_url |
string | 按需 | 视频延展的尾部片段,通常用于向前补全 |
first_frame_url |
string | 按需 | 视频延展或特殊编辑场景的首帧图像输入 |
last_frame_url |
string | 按需 | 视频延展或特殊编辑场景的尾帧图像输入 |
top_scale |
number | 按需 | 视频画面扩展时向上扩展比例 |
bottom_scale |
number | 按需 | 视频画面扩展时向下扩展比例 |
left_scale |
number | 按需 | 视频画面扩展时向左扩展比例 |
right_scale |
number | 按需 | 视频画面扩展时向右扩展比例 |
请求示例
如果您已经在项目里使用 OpenAI Python SDK,推荐继续复用统一的 OpenAI 客户端和鉴权配置。当前平台对外公开视频入口是 /v1/videos/generations,因此建议通过通用 client.post() 提交视频任务,再通过 client.get() 查询异步状态。
OpenAI Python SDK:提交视频任务
import httpx
from openai import OpenAI
client = OpenAI(
base_url="https://api.vip.lingapi.ai/v1",
api_key="sk-xxxxxxxx"
)
response = client.post("/videos/generations",
cast_to=httpx.Response,
body={
"model": "wan2.6-t2v_t2v",
"prompt": "夜晚城市天桥下,一位涂鸦少年高速说唱",
"audio_url": "https://example.com/rap.mp3",
"negative_prompt": "模糊,静止镜头",
"size": "1280*720",
"duration": 10,
"prompt_extend": True,
"watermark": False,
"shot_type": "multi"
}
)
task = response.json()
print(task["task_id"])
OpenAI Python SDK:查询任务状态
import httpx
from openai import OpenAI
client = OpenAI(
base_url="https://api.vip.lingapi.ai/v1",
api_key="sk-xxxxxxxx"
)
task_id = "task_xxx"
status_response = client.get(
f"/tasks/{task_id}",
cast_to=httpx.Response
)
print(status_response.json())
SDK 提示
当前平台公开的是 /v1/videos/generations 路由,而不是单独的 OpenAI 原生视频路由。为了避免路径和参数语义不一致,建议统一使用 client.post("/videos/generations", ...) 与 client.get("/tasks/{task_id}", ...)。
curl
# 图生视频(首尾帧)
curl -X POST https://api.vip.lingapi.ai/v1/videos/generations \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.2-kf2v-flash_kf2v",
"first_frame_url": "https://example.com/first.png",
"last_frame_url": "https://example.com/last.png",
"prompt": "写实风格,一只黑色小猫好奇地看向天空",
"resolution": "720p",
"prompt_extend": true
}'
# 通用视频编辑
curl -X POST https://api.vip.lingapi.ai/v1/videos/generations \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wanx2.1-vace-plus_vace",
"function": "video_edit",
"prompt": "把视频中的主体替换成穿西装的狮子",
"video_url": "https://example.com/source.mp4",
"mask_image_url": "https://example.com/mask.png",
"mask_frame_id": 1,
"mask_type": "tracking",
"expand_ratio": 0.05
}'
任务状态
| 状态 | 说明 |
|---|---|
queued |
任务已接受,等待处理 |
running |
任务执行中 |
success |
任务执行成功 |
failed |
任务执行失败 |
timeout |
任务执行超时 |
cancelled |
任务已取消或客户端中断 |
返回示例
{
"task_id": "task_xxx",
"request_id": "vid_xxx",
"status": "queued",
"message": "Task submitted successfully. Use GET /v1/tasks/{task_id} to check status.",
"created_at": "2026-03-16 12:00:00"
}
💡 提示
建议先通过 /v1/models 查看当前启用的视频模型。不要直接把阿里云文档里的原始模型名当作对外 model;在本平台中,通常还会带上能力后缀,例如 _t2v、_vace。