Video Generations API

统一提交文生视频、图生视频、首尾帧、参考生视频和通用视频编辑任务;模型 operation 决定真实上游能力、参数形态和计费维度。

接口说明

Ling.AI 已将“通用视频生成与编辑”按能力入口拆成多条模型记录。客户端统一调用 POST /v1/videos/generations,网关会根据后台模型配置中的 operationmodel_codebase_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,真正的差异由模型记录中的 t2vi2vkf2vr2vvace 决定。也就是说,对外 model 是“模型 + 能力入口”的组合,而不是单纯的上游模型名。

文生视频能力

wan2.6-t2v 为代表的万相-文生视频模型支持文本与音频输入,可生成最长 15 秒、最高 1080P 的视频。对于 wan2.5wan2.6 系列,既支持传入 audio_url 实现声画同步,也支持不传音频时由模型进行自动配音。其中,多镜头叙事仅 wan2.6 支持,调用时通常需要 shot_type=multiprompt_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-flashwan2.6-i2v 为代表的万相-图生视频模型支持文本、图像、音频多模态输入。常规调用至少需要传入首帧图像 img_url,并通过 resolution 指定输出分辨率。对于 wan2.5wan2.6 系列,既可以传入 audio_url 实现声画同步,也支持自动配音;若使用 wan2.6-i2v-flash 且希望输出无声视频,需要显式传入 audio=false。另外,wanx2.1-i2v-turbowanx2.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_urllast_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-flashwan2.6-r2v,支持最多 5 个参考素材,其中视频最多 3 个,常见提示词会通过 character1character2 这类占位符引用 reference_urls 里的角色。该能力支持单角色表演和多角色互动,时长范围通常是 2-10 秒,分辨率支持 720P1080P。若使用 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 小时 有效期,请及时下载保存。

curl
# 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_t2vwan2.6-i2v_i2vwanx2.1-vace-plus_vace
prompt string 视频描述文本。除少数纯模板任务外,建议始终传入
negative_prompt string 不希望出现的内容。对 t2vi2vkf2vr2v 有意义
duration integer 视频时长(秒)。不同模型支持范围不同,例如 5s、10s、15s
size string 输出尺寸,例如 1280*720。主要用于 t2vi2vr2vvace
resolution string 输出分辨率标记,例如 720p1080p。主要用于 kf2v 与部分旧模型
prompt_extend boolean 是否让上游自动扩写较短提示词
watermark boolean 是否保留上游默认水印
audio_url string 输入音频 URL,用于有声视频场景
audio boolean 是否输出有声视频。常用于 r2v 等需要显式控制声音开关的场景
seed integer 随机种子。上游支持时可用于提高可复现性
shot_type string 镜头类型,例如 multi。主要用于多镜头叙事模型

按操作请求

operation 推荐模型 关键输入字段 说明
t2v wan2.6-t2v promptaudio_urlsizeduration 文生视频,有声/无声均可
i2v wan2.6-i2v image_urlpromptaudio_url 图生视频,基于首帧
kf2v wan2.2-kf2v-flash first_frame_urllast_frame_urlprompt 图生视频,控制首尾帧过渡
r2v wan2.6-r2v reference_urlspromptsize 参考生视频,可用多个参考资源复刻角色与表演
vace wanx2.1-vace-plus functionvideo_urlprompt 通用视频编辑,多图参考、重绘、局部编辑、延展、画面扩展统一走这里

文生视频专项说明

  • t2v 当前主要面向万相文生视频系列。推荐模型是 wan2.6-t2v,可做多镜头叙事。
  • 需要声画同步时,传入 audio_url;如果不传,wan2.5wan2.6 系列默认可自动配音。
  • 需要多镜头叙事时,建议显式设置 shot_typemulti,同时开启 prompt_extend
  • 不同地域支持的模型不同,模型、Endpoint URL 和 API Key 必须来自同一地域,否则会上游直接报错。

图生视频专项说明

  • i2v 当前主要面向万相图生视频系列。推荐模型包括 wan2.6-i2v-flashwan2.6-i2v
  • 常规图生视频请求至少需要 img_urlresolution;需要声画同步时再传 audio_url
  • 如果使用 wan2.6-i2v-flash 且要生成无声视频,请显式设置 audio=false
  • 如果使用 wanx2.1-i2v-turbowanx2.1-i2v-plus 做模板特效,可传 template,例如 flying,对应“魔法悬浮”。

首尾帧视频专项说明

  • kf2v 常规模式下应同时传入 first_frame_urllast_frame_url,并建议补充 prompt 描述过渡过程。
  • 当前这类模型输出固定为 5 秒,主要通过 resolution 控制清晰度,通过 prompt_extendwatermark 调整生成策略。
  • 如果使用 wanx2.1-kf2v-plus 的特效模板模式,可传 template,例如 mech1,对应“机械觉醒”。此时 last_frame_urlprompt 可省略。

参考生视频专项说明

  • r2v 通过 reference_urls 传入参考素材,数组内最多 5 个 URL,其中视频最多 3 个。
  • 多角色场景建议在提示词中使用 character1character2 这类占位符,顺序与 reference_urls 一一对应。
  • shot_type 支持 multisingle。多角色互动更推荐 multi,单镜头固定视角可用 single
  • 如果使用 wan2.6-r2v-flash 且想生成纯视觉展示视频,可显式设置 audio=false

VACE 功能

vace 请求必须显式携带 function。当前建议使用以下取值:

  • image_reference:多图参考生成,常配合 ref_images_urlobj_or_bg
  • video_repainting:视频重绘,通常传 video_urlcontrol_conditionstrength
  • video_edit:视频局部编辑,通常传 video_urlmask_image_urlmask_video_urlmask_frame_id
  • video_extension:视频延展,通常传 first_clip_urllast_clip_urlfirst_frame_urllast_frame_url
  • video_outpainting:视频画面扩展,通常传 video_urltop_scale / bottom_scale / left_scale / right_scale
参数名 类型 必填 说明
function string VACE 编辑函数,例如 video_editvideo_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 按需 局部编辑掩码模式,常用值包括 trackingfixed
expand_ratio number 仅在 mask_type=tracking 时生效,用于扩展跟踪区域
control_condition string 按需 视频重绘特征提取方式,可选 posebodyfaceposebodydepthscribble
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:提交视频任务

Python
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:查询任务状态

Python
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
# 图生视频(首尾帧)
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 任务已取消或客户端中断

返回示例

JSON
{
  "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

📚 相关阅读

API 认证指南 | 模型目录