meitu-video-dance について
meitu-video-dance は、meitu-cli で参考動画の動きを人物やキャラクターの画像に移し、動画を生成するスキルです。入力素材の確認、プロンプト作成、結果の調整を含み、人物やキャラクターの動画制作に使えます。
主な機能
- 01参考動画から動きを抽出
- 02人物画像へ動きを転送
- 03画像と動画の品質を確認
- 04外観と場面のプロンプトを作成
- 05フィードバックに応じた結果調整
活用シーン
- 01キャラクター画像にダンス動作を付与
- 02アニメキャラクターの動作動画を作成
- 03参考動作を人物画像に転送
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ meitu/ meitu-skills --skill meitu-video-danceインストール後、Claude Code で/meitu-video-danceを入力して読み込まれたか確認します。
同梱ファイルreferences/input-quality-guide.md
詳細
概要
从参考视频中提取动作轨迹,并迁移到用户提供的目标人物/角色图片上,生成该角色执行相同动作的视频。核心工具为 meitu video-motion-transfer(异步任务)。
执行前应让用户清楚了解:此 Skill 会读取 Meitu 凭证、调用本地 meitu CLI、将用户提供的人物图片、参考动作视频及相关提示发送到 Meitu OpenAPI 进行处理,并将结果写入 ./output/ 或 $VISUAL/output/meitu-video-dance/。涉及人像与动作素材时,应确认已获得处理素材中人物的授权。
依赖関係
- meitu-cli (>=2.0.6):
npm install -g meitu-cli@latest- 首选环境变量:
MEITU_OPENAPI_ACCESS_KEY/MEITU_OPENAPI_SECRET_KEY - 或预置凭证文件:
~/.meitu/credentials.json - 如需手动初始化本地凭证,可显式执行
meitu config set-ak --value "..."+meitu config set-sk --value "..."(会写入本地文件) - 验证:
meitu auth verify --json
- 首选环境变量:
路径别名: 下文中
$VISUAL={OPENCLAW_HOME}/workspace/visual/
コアワークフロー
Preflight → [Context] → Execute → Refine → Deliver → [Record]
事前確認
meitu --version→ 未安装时,提示执行npm install -g meitu-cli@latestmeitu auth verify --json→ 凭证无效时,引导用户进行配置- 检测模式:当前工作目录中有
openclaw.yaml→ 项目模式;否则 → 单次模式 检查$VISUAL目录 → 确定功能 can_record = 当前工作目录中有 openclaw.yaml AND$VISUAL存在(缺少任一项时均为 false) - 解析 output_dir(必须在 Preflight 中完成):
解析 output_dir:openclaw.yaml →
./output/| 否则 →$VISUAL/output/meitu-video-dance/mkdir -p {output_dir}
上下文(仅在项目模式下执行,一次性模式下跳过)
mode = one-off → 跳过此步骤,直接进入 Execute。
逐步读取:
- 读取 DESIGN.md → 提取 Context References(quality、preferences、brand_refs)
- 尝试读取全局资产:quality.yaml → global.md → scenes/{type}.md(scene 文件来源:从 openclaw.yaml 的
project.types(优先使用数组)或project.type读取类型) - 无法读取时使用内联兜底值(缺失时均跳过) → 使用 quality forbidden list 过滤 prompt 元素,使用 preferences 增强创意方向
実行
ここがスキルの核心です。 動作転送の品質は、入力素材に80%、プロンプトに15%、パラメーターに5%左右されます。
1. 入力の収集と検証
ユーザーは次の2項目を入力する必要があります。
| 入力 | 説明 | 対応形式 |
|---|---|---|
| 対象人物の画像 (image_url) | 「動かす」キャラクター | URL またはローカルパス (.jpg/.jpeg/.png) |
| 参照動作動画 (video_url) | 動作のソース | URL またはローカルパス (.mp4/.mov) |
入力品質の事前チェック — API を呼び出す前に積極的に評価し、クレジットの無駄な消費を防ぎます。
対象画像のチェック:
- 全身が見えている(少なくとも膝まで。ダンスの場合は足も含む)→ 条件を満たさない場合は、画像を変更するようユーザーに伝えます
- 人物の輪郭がはっきりしていて、背景に溶け込んでいない → 背景が雑然としている場合は、先に
meitu image-cutoutで切り抜き、すっきりした背景にすることを提案します - 手が見えており、顔に重なっていない → 手で顔が隠れると、深刻なアーティファクトが発生します
- 正面または斜め向き(真横や後ろ向きではない)→ 極端な角度では生成品質が低下します
- 短辺の解像度が300px以上 → 小さすぎる場合は、先に
meitu image-superres-enhanceで鮮明にすることを提案します - ぴったりした服装は、ゆったりした服装より適しています → ゆったりした服装(ロングスカート、コート)は関節が不鮮明になり、変形の原因になります
参照動画のチェック:
- 長さは3~10秒が最適です → 長すぎる場合は、重要な部分を切り出すよう提案します
- 画面内に人物が1人だけいる → 複数人が映っていると、動作が混同される可能性があります
- カメラが安定している(固定カメラ)→ 手持ち撮影による揺れや急速なズームはノイズの原因になります
- 全身が画面内に収まっている → 人物が画面外に出ると、動作が失われます
- 動作の速度が適度である → 非常に速い動作(ブレイキンなど)は、手足の残像が発生しやすくなります
- 背景がシンプルである → 複雑な背景は姿勢推定の妨げになります
詳細な評価基準: より詳細な入力評価が必要な場合は、references/input-quality-guide.md を読み込みます
入力品質に重大な問題がある場合(例:上半身のみの画像+全身を使ったダンス動画)は、API を無理に呼び出さず、問題点をユーザーに直接伝えて、素材の変更を提案してください。
2. プロンプトの作成
重要な原則:プロンプトではキャラクターの外見とシーンを記述し、動作は記述しません。 動作は参照動画から取得するため、プロンプトに動作を記述すると、動画の信号と競合します。
プロンプトの作成方針:
{角色外观描述}, {场景/背景描述}, {画面质量修饰}
キャラクターの外見 — 対象画像から抽出するか、ユーザーに補足してもらいます。
- 性別、年齢層、体型
- 服装の説明(色、スタイル、素材)
- 髪型、髪色
- 目立つ特徴(アクセサリー、タトゥーなど)
シーン/背景 — デフォルトでは対象画像と同じにし、ユーザーが指定できるようにします。
- "white studio background"(すっきりした汎用背景)
- "city street at sunset"(シーンを設定)
- シンプルに保ち、1文以内にします
画質 — 固定の接尾辞:
high quality, detailed, natural proportions, realistic hands
プロンプトの例:
| シーン | プロンプト |
|---|---|
| ダンスをする女性 | a young woman in a white crop top and jeans, long black hair, white studio background, high quality, detailed, natural proportions |
| アニメキャラクター | anime character with blue hair and school uniform, rooftop scene, vibrant colors, high quality, consistent style |
| ビジネスパーソン | a man in a dark blue suit, short hair, modern office background, high quality, professional lighting |
禁止事項:
- 具体的な動作を記述しない("hip-hop dance"、"waving hands")→ 動作は動画で決まります
- プラットフォーム固有の構文を使わない(
--no、(keyword:1.5)、<lora:xxx>) - 否定的な表現を使わない → 肯定的に表現します("no clutter" ではなく "clean background")
3. meitu-cli の呼び出し
meitu video-motion-transfer \
--skill_name skill_meitu-video-dance \
--image_list "{image_url}" \
--reference_video_list "{video_url}" \
--prompt "{composed_prompt}" \
--download-dir "{output_dir}"
非同期タスクについて:
- このコマンドは非同期タスクです。CLI は完了するまで自動的にポーリングします(内部で
meitu task waitを呼び出します) - 生成時間は通常30秒~120秒で、動画の長さとサーバーの負荷によって異なります
- JSON を返します:
ok: true→ 結果はdownloaded_files[0].saved_pathにあります(--download-dirを使用しているため)。ok: false→ まず CLI の生のフィールドcode、hint、error_name、action_urlを確認し、その後meitu-toolsに従ってerror_typeに分類します
4. 品質の判断とエラー時の縮退対応
成功時に生成品質を確認します:
- キャラクターの同一性 — 顔、服装、髪型が元の画像と一致しているか
- 動作の完全性 — 参照動画の動作が完全に再現されているか
- 手足の自然さ — 余分な手足、関節のねじれ、指の異常がないか
- 時間的な連続性 — フレーム間が滑らかか、ちらつきや飛びがないか
失敗時のエラー縮退対応:
| レベル | 操作 | 説明 |
|---|---|---|
| L1 | プロンプトを簡潔にする | 装飾的な修飾語を削除し、外見の要点と quality の接尾辞を残します |
| L2 | 入力の適合度を確認する | 画像の体型と動画内の人物の体型が合っているか確認し、合わない場合は画像の変更を提案します |
| L3 | 参照動画を短くする | 動作が最もはっきりした3~5秒の部分を切り出して再試行します |
| L4 | 対象画像をシンプルにする | meitu image-cutout で複雑な背景を取り除いてから再試行します |
| L5 | 停止してエラーを報告する | 2回連続で失敗した場合は、code と hint を報告し、再試行しません |
よくあるエラーコードへの対応:
- 元のエラーが
meitu-toolsによってORDER_REQUIREDに分類された場合 → 残高不足です。ユーザーにチャージを案内し、action_url を提示します - 元のエラーが
meitu-toolsによってCREDENTIALS_MISSINGに分類された場合 → AK/SK が設定されていません。まず環境変数または事前に設定された~/.meitu/credentials.jsonの使用を案内します。ユーザーがローカル認証情報への書き込みを明確に求めた場合に限り、meitu config set-ak/set-skを案内します - タイムアウト → 動画が長すぎるか、サーバーが混雑しています。動画を短くするか、しばらくしてから再試行するよう提案します
調整
結果の提示: 生成した動画をユーザーに提示し、次の点を説明します。
- 「動作は、提供いただいた参照動画をもとにしています」
- 手の細部や顔の一貫性など、品質上の問題があれば指摘します
- 明らかな欠点がある場合は、修正方法を積極的に提案します
フィードバックの分類と対応する調整:
| フィードバックの種類 | 調整方法 |
|---|---|
| 「動作が違う/似ていない」 | 参照動画の品質を確認し、より鮮明な動画クリップへの変更を提案します |
| 「人物が元の画像に似ていない」 | プロンプトの外見に関する説明を強化し、詳細を追加します |
| 「背景が違う」 | プロンプトのシーンに関する説明を調整します |
| 「画質が悪い」 | 入力画像の解像度を確認し、必要に応じて先にアップスケールします |
| 「手/顔に問題がある」 | これは現在の技術でよくある制限です。後処理ツールでの修正を提案するか、別の角度から撮影した参照画像を試します |
| 「別の動作にしたい」 | 新しい参照動画をユーザーに提供してもらう必要があります |
反復のペース: 最大3ラウンドを推奨します。それを超えた場合は、次の対応を積極的に提案します。
- 入力素材を変更する(画像または動画を変更)
- 要件を分割する(例:まず満足のいくキャラクター画像を生成し、その後に動作を転送する)
- 期待値を下げ、現在の技術的な限界を説明する
納品
Preflight で解析した output_dir を直接使用します。
mv {file} {output_dir}/{date}_{name}.mp4
命名規則: {date}_{説明的な名前}.mp4。例:2026-03-23_girl-hip-hop-dance.mp4
Record(项目模式 MUST / 一次性模式跳过)
can_record = false → 跳过。一次性模式下反馈仅当前对话有效。
can_record 定义:
can_record = cwd 有 openclaw.yaml AND $VISUAL 存在(两者缺一即 false)
User approved style →
read $VISUAL/memory/observations/observations.yaml → scan similar key → merge or append → write back.
len(projects) >= 2 → propose promotion (non-blocking).
提议晋升(非阻塞:在回复末尾提及,不打断主流程) → confirmed → write target + delete observation entry
User rejected ("不要 XX") → has openclaw.yaml → ask scope → project: DESIGN.md Constraints / universal: quality.yaml no openclaw.yaml → current task only
No feedback → skip entirely.
Output
| 属性 | 值 |
|---|---|
| 格式 | MP4 视频 |
| 命名 | {date}_{effect-name}.mp4 |
| 时长 | 与参考视频一致(通常 3-10 秒) |
| 路径 | 由 Deliver 步骤确定 |