🦊Wan-Animate
👉 |
入力した画像を参照動画の人物の動きを元に動かすAnimationモード
入力した動画の人物を参照画像の人物に置き換えるReplacementモード
この二種類がありますが、ReplacementモードはAnimationモードの延長にあります
目次
参考
必要なカスタムノード
(モデルの手動ダウンロードが必要)
モデルのダウンロード
code:models
📂ComfyUI/
└── 📂models/
├── 📂clip_vision/
│ └── clip_vision_h.safetensors
├── 📂diffusion_models/
│ └── Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors
├── 📂loras/
│ └── WanAnimate_relight_lora_fp16.safetensors
├── 📂text_encoders/
│ └── umt5_xxl (fp16 or fp8).safetensors
└── 📂vae/
└── wan_2.1_vae.safetensors
Animationモード
https://gyazo.com/d25335c059e8117f9e617de4ffffefca
入力する画像にあわせて生成する動画の解像度が設定されます
解像度は16の倍数にする必要があるのでクロップします
reference_image
動かしたい静止画
face_video
🟦動画から顔の部分をクロップして入力します
YOLOにより自動で検出します
pose_video
🟦動画からVitPoseで棒人間を生成して入力します
ただし、動画の人物と動かしたい画像の人物は、骨格や立っている位置が違うためretarget処理を行い調整します
入力した動画のfpsに合わせ、出力動画のfpsを設定
16fpsにこだわる必要はあまりなさそうnomadoor.icon
https://gyazo.com/9f0e0e20d750b2e207b01adc56858202https://gyazo.com/d7f66b4153473136c37e48c7066709a1 https://gyazo.com/86ed4c6aa64af79325ce18359a4021bc
Replacementモード
https://gyazo.com/ab3d36d1e2ddfd5d7e452778dbab411c
🟪入れ替えた人物を背景に溶け込ませるためのリライトLoRAを追加
今回基準になるのは動画なので、動画の解像度に合わせて参照画像をpaddingします
🟩WanAnimateToVideoノード
pose_video
🟦棒人間のretargetは今回しないため、Pose and Face Detectionノードのretarget_imageは空に
Animationモードと比べて2つパラメータが増えます
background_video
character_mask
🟥character_maskとbackground_videoを作ります
Pose and Face Detectionノードが取得した人物座標をSAM2.1に繋ぎマスク生成
マスクを少し大きくする
大きくしたマスクをBlockify — ドット絵のようなカクカクしたマスクに変換 → character_mask
これをしないと縁が残ります
マスクした部分を黒で埋める → background_video
https://gyazo.com/f14909bbf4415e5477b67870379c6719https://gyazo.com/59dda8074526ca42245b1220bbb4420fhttps://gyazo.com/280c5916091919526db60ea0625d441a
6ステップ推論
サンプリングのステップ数を減らせるLoRAを使用して、高速化します
モデルのダウンロード
$ ComfyUI/models/loras/Wan21_I2V_14B_lightx2v_cfg_step_distill_lora_rank64.safetensors
🎨Animationモード
https://gyazo.com/c8ff6a05cd057198146cd2cffb16d733
🟪LoRAの読み込み
KSamplerの設定
steps : 4 ~ 6
cfg : 1
https://gyazo.com/86ed4c6aa64af79325ce18359a4021bchttps://gyazo.com/67326f2a1a4d803ab4c6a40799aef8a7
normal / 6steps
動きを作り出す必要がないので、6stepでもほとんど出力に影響がなさそうnomadoor.icon
🔁Replacementモード
https://gyazo.com/6e70b69630dea6bcf813917d8eb2c18a
長尺動画のために処理を繰り返す
Wan2.1ベースなので77フレームしか生成できませんが、🦊Wan2.1_VACEのExtensionのように最後の数フレームを抽出し、その続きを生成する、ということを何回も繰り返し無限長の動画を生成できるようにする機能があります そういえば、なんで81フレームじゃなくて77なのか謎だnomadoor.icon
🎨Animationモード
https://gyazo.com/a489fad9b07fb1f1745d556fa130c731
Set/Get使わないと大変なことになったんで使ってしまいました…nomadoor.icon
🟩1回目の推論で77フレーム生成したとしたら、2回目の推論ではface_videoやpose_videoは78フレーム目から使う必要があります
ただ、手動でその調整をしなくてもにvideo_frame_offsetにフレーム数を入力すれば勝手に調整されます
continue_motion_max_framesは、(N-1)回目から引き継ぐフレーム数です
例えばこれを5、legthを77にするなら、1回目の動画の最後の5フレームを使い、残り72フレームを生成します
このグループを繰り返し、前動画とvideo_frame_offsetの入力だけすれば、いくらでも長い時間の動画を作れます
https://gyazo.com/a19071391ba2f112105df6493827fe0ahttps://gyazo.com/4fe4c76b1e6cf1b35f0041a5bb6a492b
🔁Replacementモード
https://gyazo.com/5efe20ed9671e3eb4960fd5ddc70cb46
GGUF
カスタムノードのインストール
モデルの追加ダウンロード
code:model
📂ComfyUI/
└── 📂models/
└── 📂unet/
└── Wan2.2-Animate-14B.gguf
https://gyazo.com/87f9176174a91e6a8666bd1fb027fc05