当ブログにはプロモーション、アフィリエイト広告が含まれます。

【Stable Diffusion】SDWebUI ForgeでAnimateDiffを使う方法

ForgeだとA1111のAnimateDiffをインストールしても使用することができません。

ForgeでAnimateDiffを使用するには、Forge専用の拡張機能をインストールする必要があります。

今回はForgeでAnimateDiffを使う方法について解説します。

SDWebUI Forgeとは?

Forgeは、lllyasvielさんによって開発された新しいStable DiffusionのUIです。

自動でPC環境に最適化し、SDXLなどの生成速度が向上しています。

また最初からさまざまな機能がついているため、幅広い画像生成が可能です。

インストールはこちら

AnimateDiffとは?

AnimateDiffは、txt2movやmov2movで動画が生成できるツールです。

WebUI用の拡張機能を作った方がいるため、それをインストールすればWebUI上で動かすことが可能。

プロンプトをフレームごとに指定したり、ControlNetと併用したりして、一貫性の高い動画が作れます。

GitHub - guoyww/AnimateDiff: Official implementation of AnimateDiff.
Official implementation of AnimateDiff. Contribute to guoyww/AnimateDiff development by creating an account on GitHub.

SDWebUI ForgeでAnimateDiffをインストール

Forge用のAnimateDiffは以下のURLでインストールできます。

https://github.com/continue-revolution/sd-forge-animatediff.git

Extensions→Install from URL→URL for~に下記URLを入力し、Installボタンをクリックしてください。

リスタート、再起動すればインストール完了です。

AnimateDiffの使い方

モデルの導入

AnimateDiffを使用するためにモーションモジュールが必要です。

以下のリンクからいずれかをダウンロードしてください。

  • mm_sd_v14.ckpt
  • mm_sd_v15.ckpt
  • v3_sd15_mm.ckpt
guoyww/animatediff at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

それぞれの違いについては公式サイトにて確認できます。

GitHub - guoyww/AnimateDiff: Official implementation of AnimateDiff.
Official implementation of AnimateDiff. Contribute to guoyww/AnimateDiff development by creating an account on GitHub.

また他にもいくつかモーションモジュールがあるので、興味がある方は探してみてください。

ダウンロードしたファイルは以下のパスに置きます。

C:\stable-diffusion-webui-forge\extensions\sd-forge-animatediff\model

AnimateDiffのパラメータを設定

txt2imgにAnimateDiffというタブが追加されているので、そちらを開きます。

使用するモーションモジュールを選択して、Enable AnimateDiffにチェックを入れます。

その他のパラーメータは以下の通りです。

Motion module使用するモーションモジュール
Save format保存形式
Number of frames動画のフレーム数(長さ)
FPS1秒に使用する画像の枚数
Display loop numberループ回数
Closed loopループの設定
Context batch size一度に処理するフレームの値
Stride値に合わせて動きも大きくなる
Overlap フレームの重なりをどれくらいにするか
Frame Interpolationフレーム補間の有無
Interp Xフレームレートを補間

上記以外に動画を取り込んでAI化することも可能です。

よくわからなければ以下3つだけ設定すればOKです。

  • Motion module
  • Save format
  • Number of frames

今回Number of framesは32、FPSはデフォルトの8にしました。

32枚の画像で動画を作り、1秒間に8枚使用するので、動画の長さは4秒となります。

プロンプトの書き方

普通書く方法と、フレームごとに指定する方法があります。

普通に書く場合は「1girl, dancing」のように表現したい内容を入力するだけです。

フレームごとに指定する場合は、以下のように書きます。

1girl, school uniform, portrait
0: closed eyes
8: open eyes
16: smile
31: grin
class room

数字でフレーム数を指定し、コロンの後に半角スペースを入れてプロンプトを指定しています。

1行目はそれぞれの行頭に追加するものです。

0フレーム目: 1girl, school uniform, portrait, closed eyes
8フレーム目:1girl, school uniform, portrait, open eyes

最後の行はそれぞれの行末に追加するものです。

0フレーム目:1girl, school uniform, portrait, closed eyes, class room
8フレーム目:1girl, school uniform, portrait, open eyes, class room

前後が違うだけで、どちらも全体に反映されるプロンプトになります。

なお、フレーム数を指定する場合にいくつか注意点があります。

  1. コロンの後に半角スペースを入れる
  2. 指定できるのはNumber of framesで指定した数の-1まで(32なら31まで)
  3. Dynamic Promptsは併用できない

3のDynamic PromptsについてはONにしてても動画は生成できますが、フレームごとに指定したプロンプトが反映されません。

フレームごとにプロンプトを指定する場合は、必ずオフにしてから実行してください。い。

これでGenerateを押すとこんな動画ができます。

Save formatでPNGにチェックしておけばフレームごとの画像が全て保存されるので、指定したプロンプトがしっかり反映されてるか確認もできます。

ForgeでAnimateDiffを使うメリットは?

使用感はほぼ変わりませんが、hires.fixを使ったときの生成速度が異なります。

A1111でAnimateDiffとhires.fixを同時使用すると非常に生成が遅くなるため、hires.fixは非推奨とされていました。

ただForgeだとhires.fixを使用してもそこまで大きな遅延がありません。

同じプロンプト・パラーメータで比較したところ、約2倍Forgeの方が早かったです。

A1111:14 min. 8.6 sec
Forge:7 min. 25.7 sec

若干の違いはありますが、結果もほぼ同じでした。

AnimateDiffとHires.fixを併用したい方は、Forgeの方がいいかもしれません。

SDWebUI ForgeでAnimateDiffを使う方法まとめ

今回はSDWebUI ForgeでAnimateDiffを使う方法について解説しました。

ForgeでAnimateDiffを使いたい方は、専用の拡張機能をインストールしていろいろ試してみてください。

参考になれば幸いです。

SDWebUIA1111SDWebUIForge
スポンサーリンク
イクリ

Stable Diffusionを使った画像生成AIの情報をメインに発信しています。
以前多ジャンルで運営していましたが、全ジャンルに同じ熱量を注ぐのが難しく分割しました。
AI以外のジャンルはnoteでゆるく運営してます。

イクリをフォローする
イクリをフォローする

コメント

タイトルとURLをコピーしました