mcpField
A
aliyun-wan-animate-move

aliyun-wan-animate-move

github.com/cinience创意与媒体39657 次安装11 周前更新
代码仓库

关于 aliyun-wan-animate-move

通过 DashScope 的异步 API 将参考视频中的动作和表情迁移到人物图像,生成视频。适用于需要以静态人物图像制作动作动画的创作流程。

主要功能

  1. 01将参考视频动作迁移到人物图像
  2. 02支持 wan-std 和 wan-pro 模式
  3. 03异步提交任务并轮询状态
  4. 04获取生成视频链接

适用场景

  1. 01为人物图像制作动作动画
  2. 02将参考视频中的表情迁移到角色
  3. 03选择标准或专业模式生成视频

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cinience/alicloud-skills --skill aliyun-wan-animate-move

安装后在 Claude Code 中输入/aliyun-wan-animate-move确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
api_reference.md
sources.md
scripts/
generate_animate_move.py

详细介绍

Wan 2.2 Animate Move(图像转动作)

验证

mkdir -p output/aliyun-wan-animate-move
python -m py_compile skills/ai/video/aliyun-wan-animate-move/scripts/generate_animate_move.py && echo "py_compile_ok" > output/aliyun-wan-animate-move/validate.txt

通过标准:命令以 0 退出,并生成 output/aliyun-wan-animate-move/validate.txt。

输出和证据

  • 将任务 ID、轮询响应和最终视频 URL 保存到 output/aliyun-wan-animate-move/。
  • 至少保留一份端到端运行日志,以便排查问题。

前置条件

  • 安装 SDK(建议在 venv 中安装):
python3 -m venv .venv
. .venv/bin/activate
python -m pip install requests
  • 在环境中设置 DASHSCOPE_API_KEY,或将 dashscope_api_key 添加到 ~/.alibabacloud/credentials。

关键模型名称

  • wan2.2-animate-move -- 支持将参考视频中的动作迁移到角色图像上

功能

功能说明必需输入
动作迁移将参考视频中的动作和表情迁移到角色图像上image_url + video_url

服务模式

模式说明
wan-std标准模式,生成速度更快、成本效益高,适合预览和基础动画
wan-pro专业模式,动画更流畅、质量更高,但处理时间更长

API 端点(仅异步)

POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis

必需请求头:

  • Authorization: Bearer $DASHSCOPE_API_KEY
  • Content-Type: application/json
  • X-DashScope-Async: enable

新加坡端点:将 dashscope.aliyuncs.com 替换为 dashscope-intl.aliyuncs.com。

规范化接口

请求
  • image_url(字符串,必需)-- 角色图像的公开 HTTP/HTTPS URL
  • video_url(字符串,必需)-- 参考动作视频的公开 HTTP/HTTPS URL
  • watermark(布尔值,可选)-- 是否添加水印(默认值:false)
  • mode(字符串,必需)-- wan-std 或 wan-pro
  • check_image(布尔值,可选)-- 是否执行图像检测(默认值:true)
图像输入限制
  • 格式:JPG、JPEG、PNG、BMP、WEBP
  • 分辨率:每边 [200, 4096] 像素
  • 宽高比:1:3 到 3:1
  • 最大大小:5MB
  • 内容:单人、面向镜头、面部完全可见、人物在画面中的比例适中
视频输入限制
  • 格式:MP4、AVI、MOV
  • 时长:2-30s
  • 分辨率:每边 [200, 2048] 像素
  • 宽高比:1:3 到 3:1
  • 最大大小:200MB
  • 内容:单人、面向镜头、面部完全可见、人物在画面中的比例适中
响应(创建任务)
  • output.task_id(字符串)-- 用于轮询,有效期为 24 小时
  • output.task_status(字符串)-- PENDING | RUNNING | SUCCEEDED | FAILED | CANCELED | UNKNOWN
  • request_id(字符串)
响应(任务结果)
  • output.video_url(字符串)-- 生成的视频 URL
  • usage.video_count(整数)
  • usage.video_duration(整数)-- 时长,单位为秒

快速开始(Python + HTTP)

import os
import json
import time
import requests

API_KEY = os.getenv("DASHSCOPE_API_KEY")
BASE_URL = "https://dashscope.aliyuncs.com/api/v1"

def create_animate_move_task(image_url: str, video_url: str, mode: str = "wan-std") -> str:
    """Create an animate-move task and return task_id."""
    payload = {
        "model": "wan2.2-animate-move",
        "input": {
            "image_url": image_url,
            "video_url": video_url,
            "watermark": False,
        },
        "parameters": {
            "mode": mode,
        },
    }
    resp = requests.post(
        f"{BASE_URL}/services/aigc/image2video/video-synthesis",
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json",
            "X-DashScope-Async": "enable",
        },
        json=payload,
    )
    resp.raise_for_status()
    data = resp.json()
    return data["output"]["task_id"]


def poll_task(task_id: str, interval: int = 15) -> dict:
    """Poll until task completes. Returns final response."""
    while True:
        resp = requests.get(
            f"{BASE_URL}/tasks/{task_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
        )
        resp.raise_for_status()
        data = resp.json()
        status = data["output"]["task_status"]
        if status in ("SUCCEEDED", "FAILED", "CANCELED"):
            return data
        time.sleep(interval)

错误处理

错误可能原因操作
401/403缺少或无效的 DASHSCOPE_API_KEY检查环境变量或凭据文件
400 InvalidParameter不支持的图像/视频格式、尺寸不合规或缺少字段验证参数
"does not support synchronous calls"缺少 X-DashScope-Async: enable 请求头添加必需请求头
429速率限制或配额限制退避后重试

输出位置

  • 默认输出:output/aliyun-wan-animate-move/videos/
  • 使用 OUTPUT_DIR 覆盖基础目录。

反模式

  • 不要使用 wan2.2-animate-move 以外的模型名称。
  • 不要同步调用此 API -- 必须使用异步请求头。
  • 图像或视频中不要出现多人 -- 仅限单人。
  • 视频 URL 会在 24 小时后过期;请立即下载并持久化保存。
  • 不要使用面部被遮挡或人物比例极端的图像。

工作流

  1. 确认用户意图:将参考视频中的动作迁移到角色图像上。
  2. 选择服务模式:wan-std(快速/低成本)或 wan-pro(高质量)。
  3. 准备格式和尺寸有效的图像 URL 与视频 URL。
  4. 创建异步任务并轮询结果。
  5. 在 URL 过期前下载并保存生成的视频。

参考资料

  • 完整的 HTTP API 详情请参阅 references/api_reference.md。
  • 来源链接请参阅 references/sources.md。

评论

支持 Markdown