SCAIL-2とは?

SCAIL-2 は、人やキャラクターへのモーション転送に特化した Wan2.1 ベースのモデルです。

Wan-Animate や前作の SCAIL-1 と大きく違うのは、棒人間などの中間表現に変換しない点です。

ViTPose や OpenPose で棒人間を作り、それを条件として人物を動かす。これまではこれが当然のアイデアだったわけですが、いったん棒人間に変換すると多くの情報が落ちます。

奥行き、接触、複数人の絡まりあい、非人間キャラの動きなどなど…

そこで SCAIL-2 では、参照画像とモーション用動画をほぼそのまま DiT に渡します。

複雑な処理パイプラインを人間がこねるよりも、適切なデータセットを作って AI にタスクを理解してもらったほうが柔軟で使いやすいものができる。これはこれから増えていく考え方でしょうね。


モデルのダウンロード

📂ComfyUI/
└── 📂models/
    ├── 📂checkpoints/
    │   └── sam3.1_multiplex_fp16.safetensors
    ├── 📂clip_vision/
    │   └── clip_vision_h.safetensors
    ├── 📂diffusion_models/
    │   └── wan2.1_14B_SCAIL_2_fp8_scaled.safetensors
    ├── 📂loras/
    │   └── Wan21_I2V_14B_lightx2v_cfg_step_distill_lora_rank64.safetensors
    ├── 📂text_encoders/
    │   └── umt5_xxl_fp8_e4m3fn_scaled.safetensors
    └── 📂vae/
        └── wan_2.1_vae.safetensors

Animation モード

参照画像 をモーション用動画で動かします。

SCAIL-2_Animation.json

ベースの workflow は Wan-Animate と同じですが、かなりシンプルになっているので気楽に見ていきましょう。

参照画像・モーション用動画

参照画像とモーション用動画は、内部でリサイズされるため、同じサイズに揃える必要はありません。

  • アスペクト比は近いほうが扱いやすいです。
  • 画像と動画のポーズが完全に一致している必要はありません。
  • ただし、あまりにも違うと失敗します。
  • 参照画像は、モーション用動画の 1 フレーム目に近いものを選んだ方がよいでしょう。

プロンプト

モーションを転送するだけなので、詳細なプロンプトは必要ありません。

  • ただ、短すぎると、特に Replacement モード では失敗しやすくなります。
  • 今回であれば、シャツを着た男性が腰に手を当てて髪を触っている というように、どんな動画にしたいかが十分に伝わるようなプロンプトを書きます。

解像度・フレーム数

生成サイズとフレーム数は WanSCAILToVideo に入力します。

  • 推奨解像度は 480p(864×480)〜 720p 相当(1280×704)かつ 32 の倍数
  • 最大フレーム数は 81
  • 今回は、参照画像をリサイズし、そのサイズを生成解像度として使っています。

SAM3.1 によるマスク生成

参照画像とモーション用動画の人物を、SAM 3 / 3.1 でマスクします。

  • inpainting 用の厳密なマスクではなく、人物の対応関係を SCAIL-2 に伝えるための補助なので、多少ズレていても問題ありません。

Create SCAIL-2 Colored Mask

作ったマスクが適切に色付けされます。

  • 多人数の場合は少し重要です。詳しくは後述します。

6 steps 生成

SCAIL-2 でも、Wan2.1 の高速生成 用の Lightx2v LoRA を使えます。

  • cfg は 1.0
  • steps は 6

出力例

参照画像
参照画像
モーション用動画
output

Replacement モード

動画内の人物参照画像の人物 に入れ替えます。

SCAIL-2_Replacement.json

基本的には Create SCAIL-2 Colored MaskWanSCAILToVideoreplacement_modetrue にするだけです。

解像度

Replacement は動画のサイズが基準になります。

  • この workflow では、動画の 1 フレーム目をリサイズしたもののサイズを取得して設定しています。

Create SCAIL-2 Colored Mask と WanSCAILToVideo

replacement_modetrue にします。

  • ちなみに、Create SCAIL-2 Colored Mask の出力は pose_video 側の背景が白くなるだけです。

出力例

モーション用動画
参照画像
参照画像
output

Animation モード (複数人)

SCAIL-2 は複数人の動画・画像にも対応しています。

特別な操作は必要ありません。これまでと同様に動画と参照画像を入力するだけです。

SCAIL-2_Animation_multi-char.json

Create SCAIL-2 Colored Mask

複数人の場合は、どの人物にどの動きを対応させるかが重要になりますが、SCAIL-2 では色付きマスクを使ってそれを制御します。

  • Create SCAIL-2 Colored Mask は、SAM3.1 が複数対象をセグメンテーションしたとき、それぞれを順番に違う色に塗っていきます。
  • 基本的には、同じ色同士が紐づけられるため、sort_by などで色を合わせてください。

ただし、以下の出力例のように色の対応と動きが合わないことがあります。あくまでひとつの軽い条件であり、単純に構図的に近い方を選ぶこともあります。

出力例

参照画像
参照画像
モーション用動画
output

Animation モード (81 フレーム以上)

SCAIL-2 は基本的に 81 フレームまでの生成ですが、WAN Context Windows (Manual) を使うと、時間方向に分割しながら長めの動画を生成できます。

SCAIL-2_Animation_WAN-Context-Windows.json

WAN Context Windows (Manual)

時間軸方向のタイリング、あるいは context sliding のようなものです。

  • context_length を 81 にすると、内部で 81 フレームずつ区切って生成します。
  • そのままだと継ぎ目がはっきり見えてしまうので、のりしろとして context_overlap に適当なフレーム数を設定します。

出力例

参照画像
参照画像
モーション用動画
output