Stable Diffusion WebUI の最適化&高速化版!「Stable Diffusion WebUI Forge」

CGソフト

lllyasviel氏によるStable Diffusion WebUI の最適化&高速化版「Stable Diffusion WebUI Forge」の紹介です。

Stable Diffusion WebUI Forgeとは

Stable Diffusion WebUI Forgeは、ControlNet や Foocus の作者である lllyasviel氏によって作成された開発を容易にし、リソース管理を最適化し、推論を高速化するためのStable Diffusion WebUI(Gradioベース)ベースのプラットフォームです。「Forge」という名前は、「Minecraft Forge」からインスピレーションを受けており、このプロジェクトは、SD WebUI の Forge になることを目指しているとのことです。

Minecraft Forgeとは、Minecraft(マインクラフト)に他のMODを追加するために必要なシステムです。 Minecraft Forgeを導入しないと、マインクラフトで新しいアイテムなどを拡張するMODと呼ばれるデータを導入することはできません。

オリジナルのWebUIであるのAutomatic1111のユーザーインターフェイスを変更することなく、高速化とメモリ効率の向上が実現されています。

そして、Forgeの非常に重要な変更として、Unet Patcherがあります。Unet Patcherを使用すると、Self-Attention Guidance、Kohya High Res Fix、FreeU、StyleAlign、Hypertileのようなメソッドを100行程度のコードで実装できます。このUnet Patcherのおかげで、SVD、Z123、マスクされたIp-adapter、マスクされたcontrolnet、photomakerなど、多くの新しいことが可能になりました。

高速化

オリジナルのWebUI(1024pxでSDXLの推論を行う場合)と比較して、以下のようなスピードアップが期待できます

  • 8GB vramのような一般的なGPUを使用する場合、推論速度(it/s)は約30~45%向上、GPUメモリピーク(タスクマネージャーでの)が約700MBから1.3GB減少、最大拡散解像度(OOMしない)は約2倍から3倍に増加し、最大拡散バッチサイズ(OOMしない)が約4倍から6倍増加します。
  • 6GB vramのようなあまり性能の高くないGPUを使用した場合、推論速度(it/s)は約60~75%向上、GPUメモリピーク(タスクマネージャーでの)が約800MBから1.5GB減少、(OOMしない)最大拡散解像度は約3倍、(OOMしない)最大拡散バッチサイズは約4倍に増加します。
  • 24GBのvramを持つ4090のような高性能GPUを使用する場合、推論速度(it/s)は約3~6%向上、GPUメモリピーク(タスクマネージャーでの)が約1GBから1.4GB減少、最大拡散解像度(OOMしない)は約1.6倍に増加し、最大拡散バッチサイズ(OOMしない)は約2倍増増加します。
  • SDXLにControlNetを使用する場合、最大ControlNetカウント(OOMしない)は約2倍増加し、SDXL+ControlNetのスピードは約30~45%スピードアップします。

比較

これは SDXL を備えた 8GB VRAM (3070ti ラップトップ) での結果比較です。

Automatic1111

(平均約7.4GB/8GB、ピーク時約7.9GB/8GB)

WebUI Forge

(平均、ピークともに6.3GB/8GB)

新機能 (元の WebUI では利用できない)

Unet Patcher のおかげで、SVD、Z123、masked Ip-adapter、masked controlnet、photomaker など、多くの新しいことが可能になり、Forge でサポートされるようになりました。

また、Forge では以下の新しいサンプラーが利用できます。

DDPM
DDPM Karras
DPM++ 2M Turbo
DPM++ 2M SDE Turbo
LCM Karras
Euler A Turbo

コマンドフラグについて

Forge バックエンドでは、リソース管理に関連するすべての WebUI のコードが削除され、すべて作り直されています。なので、 medvram, lowvram, medvram-sdxl, precision full, no half, no half vae, attention_xxx, upcast unet…のような以前のCMDフラグはすべて削除されました。これらのフラグを追加してもエラーは発生しませんが、何も起こらないことにご注意ください。Forge では本当に必要であると確信できない限り、ユーザーに cmd フラグの使用を推奨していません。Forge にモデルをロードする方法を決定させることが強く推奨されています。

cmd フラグもなくても、Forge は SDXL を 4GB vram で、SD1.5 を 2GB vram で動作させることができます。

唯一必要なフラグは --always-offload-from-vram ((このフラグは処理を遅くします)です。このオプションは、Forge が常に VRAM からモデルをアンロードするようにします。これは、複数のソフトウェアを一緒に使用していて、Forge がより少ない VRAM を使用し、他のソフトウェアにいくつかの VRAM を与えたい場合、または Forge と VRAM を競合させる古い拡張機能を使用している場合、または(非常にまれですが)OOM が発生する場合に便利です。

インストールについて

A1111 を持っていて、Git を知っている

A1111をお持ちでgitに慣れている方は、ターミナルで /path/to/stable-diffusion-webuiで次のコマンドを実行することを強く推奨されています。

git remote add forge https://github.com/lllyasviel/stable-diffusion-webui-forge
git branch lllyasviel/main
git checkout lllyasviel/main
git fetch forge
git branch -u forge/main
git pull

A1111 に戻るには、git checkout masterまたは git checkout devを実行してください。

次に、cd extensions/sd-webui-animatediffgit checkout forge/masterを行うことができます。

A1111 を持っていない、または Git を知らない

ワンクリック インストール パッケージ (git と Python が含まれている) を使用することができます。

こちらから zip パッケージをダウンロードします。

ダウンロード後、解凍し、update.batで更新し、run.batで実行してください。

update.batを実行することが重要であることに注意してください。そうでないと、潜在的なバグが修正されていない以前のバージョンを使用している可能性があります。

拡張機能について

ControlNet と TiledVAE は統合されているため、次の 2 つの拡張機能をアンインストールする必要があります。

sd-webui-controlnet
multidiffusion-upscaler-for-automatic1111

AnimateDiff は、sd-webui-animatediff forge/master ブランチsd-forge-animatediffcontinue-revolution氏によって作成中です。continue-revolution氏によると prompt travel, inf t2v, controlnet v2vはうまく動作することが確認されおり、motion lora, i2iバッチはまだ作成中で、近日中に完成するかもとのことです。

以下のような他の拡張機能も問題なく動くようです。

canvas-zoom
translations/localizations
Dynamic Prompts
Adetailer
Ultimate SD Upscale
Reactor

ダウンロード

Stable Diffusion WebUI Forge の詳細やダウンロードはこちらから

コメント

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