石砌庭院折扇舞
Wan Animate Move API
alibaba/wan/v2.2-14b/animate/moveWan Animate Move 将单张静态角色图像结合参考视频转化为生动的高保真动态视频,支持全身骨骼姿态迁移、精细面部表情同步与多档画质输出。它在完整保留参考图像中人物面容五官、服装纹理与身体比例的同时,精确复现驱动视频中的动作幅度与运动节奏。
拖拽文件、粘贴剪贴板素材,或输入 URL。 一张图片。页面上传支持 JPG、PNG、WebP,最大 10 MiB;API 接受 HTTP(S) URL 数组。
1/1 个素材
拖拽文件、粘贴剪贴板素材,或输入 URL。 一个视频。页面上传支持 MP4、MOV、MKV,最大 100 MiB;按源视频时长向上取整到秒计费。
1/1 个素材
示例
REST API 规格
快速开始
真实生成示例。下方请求与默认输入一致,响应来自测试环境的实际提交。
第一步:配置 API 鉴权
在控制台申请 API Key,并在每个 HTTP 请求头中携带 Authorization: Bearer <API_KEY> 进行身份验证。
- 任务提交端点
- POST
https://api.vidgo.ai/api/generate/submit - 鉴权请求头
- Authorization: Bearer VIDGO_API_KEY
第 2 步:提交生成任务
POST /api/generate/submit。model 和可选 callback_url 位于根级,生成参数位于 input 内。
REQUEST_BODY=$(cat <<'JSON'
{
"model": "alibaba/wan/v2.2-14b/animate/move",
"input": {
"image_urls": [
"https://cdn.vidgo.ai/apis/models/alibaba/wan/v2.2-14b/animate/move/v1/01/input-image.png"
],
"video_url": "https://cdn.vidgo.ai/apis/models/alibaba/wan/v2.2-14b/animate/move/v1/01/input-video.mp4",
"resolution": "480p"
}
}
JSON
)
RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"第三步:轮询任务执行结果
使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
状态查询端点
GET https://api.vidgo.ai/api/generate/status/{task_id}使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "GSOXV2FCR91IOHT2",
"status": "running",
"created_time": "2026-09-23T09:54:19"
}
}{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "finished",
"files": [
{
"file_url": "https://storage.vidgo.ai/generated/video.mp4",
"file_type": "video"
}
],
"created_time": "2026-08-22T10:00:00Z",
"progress": 100,
"error_message": null
}
}端到端完整脚本示例
展开查看在生产环境中具备轮询重试、异常保护和超时处理的完整自动化脚本。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "alibaba/wan/v2.2-14b/animate/move",
"input": {
"image_urls": [
"https://cdn.vidgo.ai/apis/models/alibaba/wan/v2.2-14b/animate/move/v1/01/input-image.png"
],
"video_url": "https://cdn.vidgo.ai/apis/models/alibaba/wan/v2.2-14b/animate/move/v1/01/input-video.mp4",
"resolution": "480p"
}
}
JSON
)
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
TASK_ID=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.data.task_id // .task_id // empty')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
case "$STATUS" in
finished)
printf '%s' "$STATUS_RESPONSE" | jq -r '(.data.files // .files // [])[]?.file_url'
break
;;
failed)
printf '%s' "$STATUS_RESPONSE" | jq -r '.data.error_message // .error_message // "Generation failed"' >&2
exit 1
;;
not_started|running)
sleep "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
done请求参数(input 对象)
POST /api/generate/submit 的 input 仅接受以下字段。model 与可选 callback_url 位于请求根级。URL 必须包含主机名,不得含凭据或空白字符。
| 字段 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
| image_urls | array<string> | 是 | — | 必须为数组,恰好包含一个公开可访问的 HTTP(S) 图片 URL;不接受单个字符串或 Base64。 |
| video_url | string | 是 | — | 必填,公开可访问的 HTTP(S) 源视频 URL。Vidgo 最多读取 100 MiB,时长必须大于零;不提交 duration 字段。 |
| resolution | string | 否 | 480p | 仅支持 480p、580p、720p;仅省略时默认为 480p。不接受 null、空字符串、别名或前后空格。 |
响应字段(查询结果)
通过 GET /api/generate/status/{task_id} 轮询获取的任务详情:
| 字段 | 类型 | 描述 |
|---|---|---|
| code | integer | 业务响应状态码,200 表示成功。 |
| data.task_id | string | 异步任务全局唯一流水号。 |
| data.status | string | 任务执行阶段:not_started(排队中)、running(生成中)、finished(已完成)、failed(失败)。 |
| data.files | array | 生成成功时包含的成片文件列表,每项含 file_url 与 file_type。 |
| data.error_message | string | null | 任务执行异常时的具体错误描述。 |
任务生命周期
客户端应根据 status 字段判断任务进度,达到 finished 或 failed 终态时立即终止轮询:
not_started任务已接收,等待执行。
running正在生成。
finished生成完成,从 data.files 获取视频 URL。
failed生成失败,请查看 data.error_message,已扣积分按现有流程返还。
轮询与异常处理
- 轮询频次推荐体验区从 2 秒开始逐步增加轮询间隔,上限 10 秒;任务进入 finished 或 failed 后停止。
- 网络波动与重试查询失败并不表示生成失败。使用“重试查询状态”继续查询原任务,无需重新提交。
- 异步 Webhook 回调支持在提交请求体根层级传递 callback_url,在任务终态时系统将通过 POST 自动推送完整任务结果。
接口规格
| 规格项 | 取值 | 说明 |
|---|---|---|
| 模型 ID | alibaba/wan/v2.2-14b/animate/move | 在请求根级 model 字段使用此值。 |
| 分辨率 | 480p / 580p / 720p | 仅支持 480p、580p、720p;仅省略时默认为 480p。不接受 null、空字符串、别名或前后空格。 |
| 计费 | 7 / 12 / 15 积分/秒 | 预计积分 = 向上取整后的源视频秒数 × 分辨率单价,最终以服务端探测时长为准。例如 480p、5.1 秒按 6 秒计费,共 42 积分($0.210)。视频探测失败不扣费,生成失败退还积分。 |
相关模型
Wan Animate Move API 常见问题
Wan Animate Move API 是什么?
Wan Animate Move 是阿里研发的视频动作迁移与角色动画模型。它根据静态角色肖像与参考动作视频,提取全身骨骼姿态、头部朝向与面部表情,生成 480p、580p 与 720p 分辨率的连贯动态视频。基于 Wan2.2-Animate 的 14B 参数多模态生成架构,它在严格保持角色面部五官轮廓、服装纹理与身体比例的同时,高保真复现驱动视频中的动作时序与节奏。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Wan Animate Move 支持哪些角色图片格式?
Wan Animate Move 支持在 image_urls 数组中传入单个公开的 HTTP 或 HTTPS 图片链接,格式支持标准 JPEG、PNG 与 WebP。在网页体验区中支持直接上传最大 10 MiB 的本地图片,建议使用构图清晰、光照充足且姿态完整的单人图片以获得最佳动画效果。
Wan Animate Move 对参考视频有什么要求?
参考视频须通过 video_url 参数以公开 HTTP 或 HTTPS 链接形式提供,支持 MP4、MOV 或 MKV 封装,文件体积在 100 MiB 以内。选取摄像机机位稳定、光照良好且主体动作无严重遮挡的驱动视频,能显著提升骨骼姿态与动作提取的精度。
Wan Animate Move 如何保持角色的面部与服饰一致性?
模型采用先进的时空交叉注意力机制解耦人体运动特征与外观表征。它能够牢固锁定输入静态图中的面部微结构、发型与服装花纹材质,将驱动视频中的关节运动和表情变化精确贴合到既有角色形象上,避免肢体变形或面容漂移。
Wan Animate Move 如何按源视频时长计费?
计费规则根据源视频的实际时长向上取整到整秒,乘以所选分辨率单价:480p 为 7 积分/秒($0.035/秒),580p 为 12 积分/秒($0.060/秒),720p 为 15 积分/秒($0.075/秒)。若因参数格式有误导致校验失败或生成异常中断,系统会自动全额退还已扣除的积分。
Wan Animate Move 的不同分辨率该如何选择?
在创意探索和动作匹配验证阶段,推荐使用 480p 默认档位,生成速度快且单价最低;在社交媒体传播分享时可选择 580p 平衡画质与耗时;而在需要交付给客户或作为最终成片上线时,建议选择 720p 高清档位呈现细腻质感。
什么时候该选择 Wan Animate Move 而不是 Wan Animate Replace?
当你的核心诉求是为一张孤立的角色肖像或插画注入动作、生成全新的表演视频时,请选择 Wan Animate Move;如果你已经拥有一段完整的场景视频,并希望在保持原有复杂背景、运镜轨迹和环境光影不变的前提下将片中人物置换为新角色,则应选择 Wan Animate Replace。















