【ComfyUI】SCAIL-2の使い方|動画のキャラクターを差し替える

SCAIL-2という、動画の動きを画像に反映できるモデルがリリースされました。

今回はこのSCAIL-2をComfyUIで動かす方法について紹介します。

SCAIL-2とは?

SCAIL-2は、駆動用の動画のモーションを参照画像のキャラクターに転写できるモデルです。

前バージョンのSCAILは骨格(ポーズ推定)を挟んでいましたが、SCAIL-2はそれを経由せず駆動動画を直接読み込みます。

そのおかげで人以外の動きや、動物・一人称視点の動画でも駆動できるとのこと。

動画の人物をそのまま入れ替える置換モードと、参照画像のキャラクターに動きだけさせるアニメーションモードの2つがあります。

主な特徴

  • 駆動動画からモーションを転写するキャラクターアニメーション
  • 骨格などの中間表現を経由しないend-to-end設計
  • 動画内のキャラクターを差し替える置換モードに対応
  • 複数キャラクターや動物が駆動元でも動く
  • 細部を改善するDPO LoRAが別途配布されている
  • ComfyUIがネイティブで対応(カスタムノード不要)
GitHub – zai-org/SCAIL-2: Official Implementation of SCAIL-2: Unifying Controlled Character Animation with End-to-end In-Context Conditioning
Official Implementation of SCAIL-2: Unifying Controlled Character Animation with End-to-end In-Context Conditioning – za…

ライセンス

コードはApache-2.0です。

ただモデルの重みはHugging Faceのモデルカードだとmit表記になっていて、リポジトリの表記と食い違っています。

どちらも生成物の商用利用を制限するものではないみたいですが、気になる方は公式のLICENSEを確認してみてください。

ComfyUIのインストール

ComfyUIのインストールがまだの方はこちらを参考にしてみてください。

【ComfyUI】の使い方・始め方まとめ|インストールから基本操作・カスタムノードまで
ComfyUIを始めたいけど、インストール方法がいくつかあってどれを選べばいいか迷う、という方は多いと思います。この記事では、ComfyUIの導入方法の違いと選び方、そして基本的な使い方の入口をまとめて紹介します。各トピックの詳しい手順は、…

SCAIL-2で使うノードはまだ新しいので、ComfyUIは最新版(nightly / masterブランチ)に更新しておく必要があります。

安定版のままだとSCAIL2ColoredMaskノードが出てこないので、動かない場合はまずここを疑ってみてください。

モデルの用意

今回は公式ワークフローに沿って、以下の7つを用意します。

拡散モデルだけはfp16が30GB近くあるので、fp8_scaledのほうを使っています。

ファイル置き場所
wan2.1_14B_SCAIL_2_fp8_scaled.safetensorsdiffusion_models
wan2.1_SCAIL_2_DPO_lora_bf16.safetensorsloras
lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensorsloras
Wan2_1_VAE_bf16.safetensorsvae
umt5_xxl_fp8_e4m3fn_scaled.safetensorstext_encoders
clip_vision_h.safetensorsclip_vision
sam3.1_multiplex_fp16.safetensorscheckpoints

フォルダ構成

ComfyUI\models\diffusion_models\wan2.1_14B_SCAIL_2_fp8_scaled.safetensors
ComfyUI\models\loras\wan2.1_SCAIL_2_DPO_lora_bf16.safetensors
ComfyUI\models\loras\lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors
ComfyUI\models\vae\Wan2_1_VAE_bf16.safetensors
ComfyUI\models\text_encoders\umt5_xxl_fp8_e4m3fn_scaled.safetensors
ComfyUI\models\clip_vision\clip_vision_h.safetensors
ComfyUI\models\checkpoints\sam3.1_multiplex_fp16.safetensors

ComfyUIでSCAIL-2を使う方法

ワークフローの読み込み

ComfyUIのテンプレートに公式のものが入っています。

メニューのワークフロー→Browse Templatesから、SCAIL-2: Character Replacementを選んでください。

ComfyUIのテンプレートからSCAIL-2: Character Replacementを選ぶ

ノードの設定&実行

Load Video

動きの元になる駆動動画を取り込みます。

今回はこちらをお借りしました。

Load Videoノードに駆動動画を読み込む

Load Image

動かしたい画像を取り込みます。

Load Imageノードに動かしたい画像を読み込む

Character Replacement (SCAIL-2 Base)・Character Replacement (SCAIL-2 Extend)

Character Replacement (SCAIL-2 Base)とCharacter Replacement (SCAIL-2 Extend)のサブグラフ

主なパラメータ

項目内容
pose_video動きの元になる駆動用の動画
reference_image差し替えたいキャラクターの参照画像
prompt出力される動画そのものの描写
replace_modetrueで置換モード、falseでアニメーションモード
segment_index1が最初の区切り。続きは2、3と増やす
width / height既定は896×512
frame_count既定は81。4n+1の値にする
previous_frame_count区切り同士の重なり。既定は5
turbo_modeLightx2vを使った高速化のプリセット
sam3_video_object駆動動画のどれを追うかを単語で指定。既定はhuman
sam3_image_object参照画像のどれを追うかを単語で指定。既定はhuman

下のhumanの部分はマスクをかける部分を指定するものなので、人物ならhumanのままで問題ありません。

sam3_video_objectとsam3_image_objectにhumanを指定する

あと今回縦動画なので896×512も入れ替えて実行しています。

長い動画を作るとき

Extendのサブグラフを増やしてつなげれば伸ばせます。

まずExtendの方をCtrl+C→Ctrl+Shift+Vで複製したあと、segment_indexを+1にしてください。

ベースから1,2,3と順にする必要があります。

Extendのsegment_indexをベースから1,2,3と順に設定する

で、一個前のoutputを複製した方のprevious_framesに繋ぎます。

複製したExtendに一つ前のoutputを繋ぐ

最後に複製した方のoutputをBatch Imagesの新しい部分に入力します。

複製したExtendのoutputをBatch Imagesに繋ぐ

これでいくらでも拡張可能です。

長さに合わせて増やしてみてください。

アニメーションモードと置換モードの違い

SCAIL-2には2つのモードがあり、replace_modeで切り替えます。

モードreplace_mode何が起きるか背景
置換モードtrue駆動動画に映っている人物が、参照画像のキャラクターに入れ替わる駆動動画のまま
アニメーションモードfalse参照画像のキャラクターが、駆動動画の動きをする参照画像側
BaseとExtendのreplace_modeを切り替える

またpromptもモードによって書き分けが必要みたいです。

置換モードは背景が駆動動画のものになるので、差し替えたあとの人物の見た目だけを書きます。

アニメーションモードは参照画像側の背景になるので、背景も含めて書きます。

結果

拡張は増やさずデフォルトのワークフローをそのまま使用してます。

私の環境(VRAM16GB/RAM64GB)では、どちらのモードでも処理は約15分でした。

ただアニメーションモードの方が若干速く14分くらいでした。

・置換モード

人物だけが変わり、背景などは駆動動画のままです。

・アニメーションモード

人物・背景含め画像のまま、動画の動きを反映しています。

まとめ

無印のSCAILも十分クオリティは高かったのですが、SCAIL-2になってより精度・描写ともに良くなっている印象でした。

ComfyUIのワークフローもシンプルだし、マスクもSAM3が勝手に作ってくれるので、前処理でつまずくところがほとんどありません。

モーションさえあれば、自分の好きなキャラを自由に動かせると思います。

興味ある方は使ってみてください。

以上ComfyUIでSCAIL-2を使う方法について紹介しました。

参考になれば幸いです。

タイトルとURLをコピーしました