mcpField
M
meitu-video-dance

meitu-video-dance

github.com/meituクリエイティブ・メディア36113 回インストール9 週間前に更新
リポジトリ

meitu-video-dance について

meitu-video-dance は、meitu-cli で参考動画の動きを人物やキャラクターの画像に移し、動画を生成するスキルです。入力素材の確認、プロンプト作成、結果の調整を含み、人物やキャラクターの動画制作に使えます。

主な機能

  1. 01参考動画から動きを抽出
  2. 02人物画像へ動きを転送
  3. 03画像と動画の品質を確認
  4. 04外観と場面のプロンプトを作成
  5. 05フィードバックに応じた結果調整

活用シーン

  1. 01キャラクター画像にダンス動作を付与
  2. 02アニメキャラクターの動作動画を作成
  3. 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]
事前確認
  1. meitu --version → 未安装时,提示执行 npm install -g meitu-cli@latest
  2. meitu auth verify --json → 凭证无效时,引导用户进行配置
  3. 检测模式:当前工作目录中有 openclaw.yaml → 项目模式;否则 → 单次模式 检查 $VISUAL 目录 → 确定功能 can_record = 当前工作目录中有 openclaw.yaml AND $VISUAL 存在(缺少任一项时均为 false)
  4. 解析 output_dir(必须在 Preflight 中完成): 解析 output_dir:openclaw.yaml → ./output/ | 否则 → $VISUAL/output/meitu-video-dance/ mkdir -p {output_dir}
上下文(仅在项目模式下执行,一次性模式下跳过)

mode = one-off → 跳过此步骤,直接进入 Execute。

逐步读取:

  1. 读取 DESIGN.md → 提取 Context References(quality、preferences、brand_refs)
  2. 尝试读取全局资产:quality.yaml → global.md → scenes/{type}.md(scene 文件来源:从 openclaw.yaml 的 project.types(优先使用数组)或 project.type 读取类型)
  3. 无法读取时使用内联兜底值(缺失时均跳过) → 使用 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 步骤确定

コメント