今回はAnimateDiffを使って動画生成していこうと思います。Stable Diffusionの画像生成モデルを少し拡張した手法のため、Stable Diffusionで画像生成を実行できるPCであればほぼ問題なく実行できる、かなり軽量なモデルになります。それでいてそこそこ良い動画が生成できるので試してみてください。
作業の流れ
ComfyUIの導入
導入方法は以下の記事にまとめたので、こちらを参考にしていただければと思います。
ComfyUI-AnimateDiff-Evolvedの導入
AnimateDiff用にはプラグインの導入が必要です。ワークフローを作成する前にComfyUIにComfyUI-AnimateDiff-Evolved
を追加してください。ComfyUI-Managerからがラクですが、ComfyUI/custom_nodes
ディレクトリにgit clone
してくるでもインストール可能です。
Motion LoRAなしで生成する場合
ワークフローの作成手順(Motion LoRAなし)
AnimateDiff Loader
とVideo Combine
ノードを追加してください- 図のようにつないでください。
AnimateDiff Loader
でモデルを拡張し、Video Combine
で連続した画像をつなげて動画に変換してくれます。
生成手順(Motion LoRAなし)
好きなベースモデルとAnimateDiffのモデルを用意します。
- 自分の場合AnimateDiffのモデルは↓からダウンロードしました。
- guoyww/animatediff at cd71ae134a27ec6008b968d6419952b0c0494cf2
ベースモデルを
ComfyUI/models/checkpoints
に配置します- AnimateDiffのモデル
ComfyUI/models/animatediff_models
に配置します - 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を選択- その他パラメーターを好きにいじって
Queue Prompt
します
生成結果
Motion LoRAなし
最小構成だと1時間ぐらい粘ってこれくらい
Motion LoRAあり
ZoomOutのMotion LoRAを使用しましたが割といい感じに適用されています。
最後に
画像生成の場合より少しパラメーターの調整が難しく感じました。(思った通りの出力が出にくい) AnimateDiffに関しては、ControlNetやらFrame Interpolationやら手法がいろいろあるようなのでそのうち試してみようと思います。
おまけ(Hires.fix構成を試してみた)
ワークフローはこれです。
生成されたのがこれ