Video Motion Transfer
Overview
调用 meitu video-motion-transfer 将参考视频中的动作姿态迁移到图片人物上,保留图片人物外貌特征。用于舞蹈复刻、动作模仿、姿态驱动、虚拟人驱动。
执行前应让用户清楚知道:本 Skill 会读取 Meitu 凭证、调用本地 meitu CLI、将用户提供的人物图片、动作参考视频和生成提示发送到 Meitu OpenAPI 处理,并把结果写入 ./output/ 或 $VISUAL/output/video-motion-transfer/。涉及人像和动作素材时,应确认对素材中人物具备处理授权。
不处理:纯文字生成视频、参考视频运镜/风格、换脸/换人物、视频内容编辑。
API Mapping
| DAG 工具 | 后端 API |
|---|---|
| video-motion-transfer | video_motion_transfer |
Dependencies
- meitu-cli:
>=2.0.6 - 凭证:CONFIG AKSK →
meitu tools update;EXEC AKSK → 跑命令 - 环境变量:
MEITU_OPENAPI_TOOL_TASK_MODE=command
路径别名:
$VISUAL={OPENCLAW_HOME}/workspace/visual/
Core Workflow
Preflight → Execute → Deliver
Preflight
meitu --version≥ 2.0.6;meitu auth verify --json- 确认已跑过 Config Phase;
MEITU_OPENAPI_TOOL_TASK_MODE=command - output_dir 解析:openclaw.yaml →
./output/| else →$VISUAL/output/video-motion-transfer/;mkdir -p {output_dir}
Execute
触发信号/路由
命中条件:同时提供图片(人物参考图)+ 视频(动作参考视频),且意图为模仿动作。信号词:"动作迁移、模仿动作、跟着跳舞、姿态驱动、让这个人做这个动作"。
决策顺序:
image_list/reference_video_list缺失 → 追问- 意图判断:动作模仿 → 本工具;运镜/风格参考 → 不属于本工具
- 唯一路由 →
video_motion_transfer
意图不明(图+视频但未说清动作 vs 运镜)→ 默认走本工具(动作迁移)。
参数定义
| 参数 | 类型 | 必填 | 范围 | 默认值 | 说明 |
|---|---|---|---|---|---|
prompt |
STRING | 是 | -- | -- | 动作/场景描述;缺失可根据参考视频自动生成简要描述 |
image_list |
ARRAY | 是 | 1 张 | -- | 人物参考图 URL |
reference_video_list |
ARRAY | 是 | 1 个,≤15s | -- | 动作参考视频 URL |
video_duration |
NUMBER | 否 | 3–15 | 5 | 视频时长(秒) |
aspect_ratio |
STRING | 否 | 16:9 / 1:1 / 9:16 | adaptive | 画面比例 |
工具调用
meitu video-motion-transfer \
--skill_name skill_video-motion-transfer \
--prompt "{prompt}" \
--image_list '["{person_image_url}"]' \
--reference_video_list '["{motion_video_url}"]' \
--video_duration 5 \
--aspect_ratio adaptive \
--json --download-dir {output_dir}
错误降级
| 场景 | 处理 |
|---|---|
image_list 缺失 |
提示"请提供人物参考图" |
reference_video_list 缺失 |
提示"请提供动作参考视频" |
video_duration > 15s |
钳位至 15s,告知用户 |
| 参考视频无明显人体动作 | 正常调用,告知效果可能不理想 |
prompt 缺失 |
根据参考视频内容自动生成简要描述 |
| 图片/视频 URL 不可访问 | 不重试,提示"请提供有效链接" |
| 未检测到人物 | 返回错误:参考图需包含清晰人物 |
| 调用失败 | 重试 1 次,仍失败返回错误 |
| 超时(>600s) | 降低时长重试 1 次,仍失败返回错误 |
| 内容合规拦截 | 直接返回合规提示,不重试 |
Deliver
解析 --json → downloaded_files[0].saved_path 或 media_urls[0]。
mv {file} {output_dir}/{YYYY-MM-DD}_{name}_motion-transfer.mp4
Output
- 格式:MP4
- 命名:
{YYYY-MM-DD}_{descriptive-name}_motion-transfer.mp4 - 位置:项目 →
./output/;一次性 →$VISUAL/output/video-motion-transfer/
基线 Task ID
t_mt1a3i5n7b5d0785f3-ea01-42a0-8e22-08a334d81361