tags : ComfyUI
AnimateDiff とは
SD 1.5 の U-Net に時間方向のアテンション層を挿入するモーションモジュール。静止画生成モデルを動画生成モデルに変える。
txt2img ワークフローに AnimateDiff Loader を追加するだけで、静止画が動画になる。
ワークフロー構成
txt2img ワークフローからの変更点:
- AnimateDiff Loader を追加
- Checkpoint Loader → AnimateDiff Loader → KSampler の順にモデルを接続
- Empty Latent Image の batch_size を増やす(= フレーム数)
- Save Image を VHS_VideoCombine に置き換え(動画出力用)
Load Checkpoint → AnimateDiff Loader → KSampler → VAE Decode → VHS_VideoCombine
CLIP Text Encode (positive) ↗
CLIP Text Encode (negative) ↗
Empty Latent Image ↗
Multival → AnimateDiff Loader (scale_multival)AnimateDiff Loader ノード
Add Node → Animate Diff → ① Gen1 nodes ① → AnimateDiff Loader で追加。
model_name
モーションモジュールの選択。
| モデル | 特徴 |
|---|---|
| v3_sd15_mm.ckpt | 標準のモーションモジュール。まずはこれで学ぶ |
| AnimateLCM_sd15_t2v.ckpt | 少ないステップで高速生成。LCM 版 |
scale_multival
モーション(動き)の強さを制御する。Multival ノードを接続して値を渡す。
Add Node → Animate Diff → multival → Multival で追加。
| 値 | 挙動 |
|---|---|
| 0.5 | ほぼ静止画。動きがほとんどない |
| 1.0 | デフォルト相当。適度な動き |
| 1.2 | しっかり動く。波や炎のような動的な被写体に良い |
値が大きいほどモーションモジュールの影響が強くなり、動きが激しくなる。
batch_size = フレーム数
Empty Latent Image の batch_size がそのまま生成されるフレーム数になる。
| batch_size | fps=8 での動画長 |
|---|---|
| 8 | 1秒 |
| 16 | 2秒 |
| 240 | 30秒(本番用) |
生成時間は batch_size にほぼ比例する。
CFG の動画での挙動
静止画と同じ傾向が動画でも出る。
| CFG | 挙動 |
|---|---|
| 3 | プロンプトへの忠実度が低い。ぼんやり・自由な結果 |
| 7 | バランスが良い。動画でも安定 |
| 20 | コントラスト過剰。漫画的・不自然な質感になる |
動きやすい被写体
AnimateDiff は本来動くものに対してより自然な動きを生成する。
動きが出やすい : 波、炎、雲、煙、水の流れ
動きが出にくい : 山、建物、静物
プロンプトで動的な被写体を指定すると AnimateDiff の効果が分かりやすい。
VHS_VideoCombine(出力)
動画として出力するためのノード(Video Helper Suite)。
Add Node → Video Helper Suite → Video Combine で追加。
- VAE Decode の IMAGE 出力を images 入力に接続
- frame_rate を fps に合わせる(通常 8)
- format: image/gif または video/h264-mp4(MP4 の方がファイルサイズが小さい)
- ComfyUI のアセットパネルには表示されない(VHS の仕様)。出力は output/ フォルダに保存される