Otama's Playground

AIで遊んだ結果などをつらつら載せていきます。

【AnimateDiff】ComfyUIを使って動画生成AIで遊んでみよう【Stable Diffusion】

今回はAnimateDiffを使って動画生成していこうと思います。Stable Diffusionの画像生成モデルを少し拡張した程度の手法のため、かなり軽量なモデルになります。それでいてそこそこ良い動画が生成できるので試してみてください。

具体的な手法は以下の記事を参照ください。

otama-playground.com

作業の流れ

  1. ComfyUIの導入
  2. ComfyUI-AnimateDiff-Evolvedの導入
  3. ワークフローの作成
  4. モデルのダウンロードと配置
  5. 生成する

1. ComfyUIの導入

導入方法は以下の記事にまとめたので、こちらを参考にしていただければと思います。

otama-playground.com

2. ComfyUI-AnimateDiff-Evolvedの導入

AnimateDiff用にはプラグインの導入が必要です。ワークフローを作成する前にComfyUIにComfyUI-AnimateDiff-Evolvedを追加してください。ComfyUI-Managerからがラクですが、ComfyUI/custom_nodesディレクトリにgit cloneしてくるでもインストール可能です。

github.com

3. ワークフローの作成

  1. AnimateDiff LoaderVideo Combineノードを追加してください
  2. 図のようにつないでください。

ワークフロー

AnimateDiff Loaderでモデルを拡張し、Video Combineで連続した画像をつなげて動画に変換してくれます。

4. モデルのダウンロードと配置

  1. 好きなベースモデルとAnimateDiffのモデルを用意します。
  2. ベースモデルをComfyUI/models/checkpointsに配置します
  3. AnimateDiffのモデルComfyUI/models/animatediff_modelsに配置します

5. 生成する

  1. batch_sizeが動画の長さになるので長さをいじります
    • 長くしすぎると消費メモリも増えるとともに、精度が悪くなるので注意
  2. その他パラメーターを好きにいじってQueue Promptします

※ Motion LoRAありで生成する場合の追加ステップ

Motion LoRAは現状 Animatediff V2しか対応してないようなので注意。バージョンが対応していない場合Motion LoRAを入れても全く動きが出ません。

ワークフローの修正(Motion Loraあり)

  1. 上で作成したワークフローにLoad AnimateDiff LoRAを作成します
  2. AnimateDiff Loaderノードに Load AnimateDiff LoRAノードをつなげます。

Motion LoRAのダウンロードと配置

  1. 好きなMotion LoRAをダウンロードしてくる
  2. ComfyUI/models/animatediff_motion_loraにおく

生成時

  1. AnimateDiff Loaderノードで好きなMotion LoRAを選択

生成結果

Motion LoRAなし

最小構成だと1時間ぐらい粘ってこれくらい

生成結果(最小構成)

Motion LoRAあり

ZoomOutのMotion LoRAを使用しましたが割といい感じに適用されています。

生成結果(Motion LoRAあり)

最後に

画像生成の場合より少しパラメーターの調整が難しく感じました。(思った通りの出力が出にくい) AnimateDiffに関しては、ControlNetやらFrame Interpolationやら手法がいろいろあるようなのでそのうち試してみようと思います。

動画生成に関連する他の手法を試したい方は下記のリンク集をぜひご活用ください。

otama-playground.com

おまけ(Hires.fix構成を試してみた)

ワークフローはこれです。

ワークフロー

生成されたのがこれ

生成動画1

生成動画2