動画内の人物を「別人」へ
完全置換する魔法
ComfyUIを使えば、動画編集はここまで進化します。以前は面倒だったマスク処理を自動化し、まるで映画のVFXのような人物の入れ替えを、あなたのPCで実現しましょう。
🎥 今回の参考動画はこちら ▼
1. WAN 2.2 Animateとは? - 動画生成の新たな地平
こんにちは、OKIHIROです。今回は、動画生成AI界隈で注目を集めている「WAN 2.2 Animate」モデルと、高精度なセグメンテーションモデル「SAM2 (Segment Anything Model 2)」を組み合わせたComfyUIワークフローをご紹介します。
従来の動画編集における「人物の入れ替え(Video-to-Video)」は、対象物を正確に切り抜くマスク処理が非常に手間でした。しかし、今回のワークフローではSAM2が被写体を自動で認識・追従してくれるため、面倒な「ポチポチ作業」から解放されます。
さらに、参照画像の内容をAI(Florence2)が解析してプロンプトを自動生成するため、一貫性のある高品質な動画変換が可能になります。アクション映画のような激しい動きでも、違和感なくキャラクターを置換できるのが最大の特徴です。
2. 必要な準備(PCスペック・モデル・カスタムノード)
このワークフローを動かすには、いくつかの事前準備が必要です。特にカスタムノードの導入時にエラーが出やすいため、以下の手順を慎重に進めてください。
導入時の注意点とトラブルシューティング
配布されているワークフローを読み込むと、いくつかのノードで「Missing(不足)」エラーが出る場合があります。ComfyUI Managerの「Install Missing Custom Nodes」で解決しない場合は、以下の手動対応が必要です。
1. ComfyUI_LayerStyle の再インストール
エラーが出る場合、既存のフォルダを削除してGitHubから直接クローンする必要があります。
.../ComfyUI/custom_nodes/フォルダ内のComfyUI_LayerStyleフォルダを削除します。- そのフォルダ内でコマンドプロンプトを開き、以下のコマンドを実行します。
git clone https://github.com/chflame163/ComfyUI_LayerStyle.git
2. WanAnimatePreprocess の導入
同様に、以下のコマンドで前処理用のノードをインストールします。
git clone https://github.com/kijai/ComfyUI-WanAnimatePreprocess.git
必要なモデルファイルの準備
次に、AIモデルをダウンロードして配置します。特に検出用モデルの配置場所が特殊なので注意してください。
Detectionモデルの配置:
.../ComfyUI/models/ フォルダの中に、新しく detection という名前のフォルダを作成してください。以下のリンク(Hugging Face等)からモデルをダウンロードし、その中に格納します。
yolo_nas_s.onnx(物体検出用)vitpose_base_coco.onnx(姿勢推定用)
その他、Wan2.1-Animate 本体やVAE、T5エンコーダーなどは、通常の checkpoints や vae フォルダ、またはワークフロー指定のパスに配置してください。
3. ComfyUIワークフロー徹底解説
準備が整ったら、ComfyUIを再起動してワークフローを読み込みましょう。このワークフローは、5秒ごとのブロックを6つ繋げて、最大30秒の動画を生成する構成になっています。
ステップ1: 素材のアップロードと基本設定
まず、画面左側の「Upload reference image」グループに注目してください。
- 参照画像 (Load Image): 動画に登場させたいキャラクターの画像をアップロードします。
- 元動画 (Load Video): 変換元の動画ファイルをアップロードします。
- Florence2 Run: 参照画像から自動的にプロンプト(キャプション)を生成します。これにより、AIが「どんなキャラクターを描くべきか」を理解します。
次に、生成パラメータを設定します。
- width / height: 解像度(例: 832x1280など)。VRAM使用量に直結します。
- fps: フレームレート。デフォルトは16fps程度が推奨です。
- length: 生成するフレーム数。
ステップ2: SAM2によるマスク自動生成
ワークフローが実行されると、まず「Pose & Mask Preprocessing」セクションが動きます。ここでSAM2が活躍し、元動画から人物領域を自動的に検出してマスクを作成します。以前のバージョンよりも精度が格段に向上しており、激しい動きや回転を含むスケートボード動画などでも、かなり正確に追従します。
ステップ3: 動画生成 (Image-to-Video)
マスク情報を元に、WAN 2.2 Animateモデルが各フレームを描画します。VRAM(ビデオメモリ)が不足する場合は、デコード処理をタイル化(Tiled Decode)することで動作を軽量化できます。タスクマネージャーを確認しながら進めましょう。
4. Motion Transfer(動きの継承)への切り替えコツ
このワークフローには、キャラクターを置き換えるだけでなく、「元動画の動きだけを抽出して、別のキャラクターに適用する(Motion Transfer)」モードも存在します。
設定の変更ポイント
Motion Transferを行う場合は、ノードの接続を一部変更する必要があります。
- プロンプト連結の変更: プロンプトを処理するノード(
PromptConcatなど)の設定値を、ノートに記載されている「Character Motion Transfer」用の値(例:soft and realistic lightingなど)に変更します。 - マスク処理のバイパス: Pose & Mask Preprocessingグループ内で、
Set_maskノードへの接続を切り、Draw Mask On Imageノードからの出力を直接後続のノードに繋ぎ変える必要があります(Shiftキーを押しながらドラッグするとスムーズです)。
これにより、元動画の「画」そのものではなく、「動き(Pose)」の情報だけが強く反映されるようになります。
5. まとめ
WAN 2.2 AnimateとSAM2を組み合わせることで、個人レベルでも驚くほど高品質な動画編集が可能になりました。特に以下の点が革新的です。
- マスク作業の自動化: SAM2のおかげで、複雑な切り抜き作業が不要に。
- 高い追従性: アクション動画でも破綻が少ない。
- プロンプト自動生成: Florence2により、参照画像のニュアンスを正確に反映。
導入には少し手間がかかりますが、一度構築してしまえば強力な武器になります。ぜひあなたのPCで、次世代の動画生成を体験してみてください!
