今回はAnimateDiffを使って動画生成していこうと思います。Stable Diffusionの画像生成モデルを少し拡張した程度の手法のため、かなり軽量なモデルになります。それでいてそこそこ良い動画が生成できるので試してみてください。
具体的な手法は以下の記事を参照ください。
作業の流れ
- ComfyUIの導入
- ComfyUI-AnimateDiff-Evolvedの導入
- ワークフローの作成
- モデルのダウンロードと配置
- 生成する
1. ComfyUIの導入
導入方法は以下の記事にまとめたので、こちらを参考にしていただければと思います。
2. ComfyUI-AnimateDiff-Evolvedの導入
AnimateDiff用にはプラグインの導入が必要です。ワークフローを作成する前にComfyUIにComfyUI-AnimateDiff-Evolved
を追加してください。ComfyUI-Managerからがラクですが、ComfyUI/custom_nodes
ディレクトリにgit clone
してくるでもインストール可能です。
3. ワークフローの作成
AnimateDiff Loader
とVideo Combine
ノードを追加してください- 図のようにつないでください。
AnimateDiff Loader
でモデルを拡張し、Video Combine
で連続した画像をつなげて動画に変換してくれます。
4. モデルのダウンロードと配置
- 好きなベースモデルとAnimateDiffのモデルを用意します。
- 自分の場合AnimateDiffのモデルは↓からダウンロードしました。
- guoyww/animatediff at cd71ae134a27ec6008b968d6419952b0c0494cf2
- ベースモデルを
ComfyUI/models/checkpoints
に配置します - AnimateDiffのモデル
ComfyUI/models/animatediff_models
に配置します
5. 生成する
- batch_sizeが動画の長さになるので長さをいじります
- 長くしすぎると消費メモリも増えるとともに、精度が悪くなるので注意
- その他パラメーターを好きにいじって
Queue Prompt
します
※ Motion LoRAありで生成する場合の追加ステップ
Motion LoRAは現状 Animatediff V2しか対応してないようなので注意。バージョンが対応していない場合Motion LoRAを入れても全く動きが出ません。
ワークフローの修正(Motion Loraあり)
- 上で作成したワークフローに
Load AnimateDiff LoRA
を作成します AnimateDiff Loader
ノードにLoad AnimateDiff LoRA
ノードをつなげます。
Motion LoRAのダウンロードと配置
- 好きなMotion LoRAをダウンロードしてくる
ComfyUI/models/animatediff_motion_lora
におく
生成時
AnimateDiff Loader
ノードで好きなMotion LoRAを選択
生成結果
Motion LoRAなし
最小構成だと1時間ぐらい粘ってこれくらい
Motion LoRAあり
ZoomOutのMotion LoRAを使用しましたが割といい感じに適用されています。
最後に
画像生成の場合より少しパラメーターの調整が難しく感じました。(思った通りの出力が出にくい) AnimateDiffに関しては、ControlNetやらFrame Interpolationやら手法がいろいろあるようなのでそのうち試してみようと思います。
動画生成に関連する他の手法を試したい方は下記のリンク集をぜひご活用ください。
おまけ(Hires.fix構成を試してみた)
ワークフローはこれです。
生成されたのがこれ