
【SDWebUI】最新版Forgeがfluxに対応!違いや注意点について
Stable Diffusionのhow to記事です。
今回はFluxに対応した最新版Forgeの違いや注意点についてご紹介します。
※確認でき次第ちょいちょい修正してますが、更新が頻繁に行われているため、情報が古くなっているものがあるかもしれません。
■プロフィール
自サークル「AI愛create」でAIコンテンツの販売・生成をしています。
クラウドソーシングなどで個人や他サークル様からの生成依頼を多数受注。
実際に生成した画像や経験したお仕事から有益となる情報を発信しています。
詳細はこちら(🔞コンテンツが含まれます)
➡️lit.link
メンバーシップ(月額500円)に加入して頂くと、限定記事と300円以下の有料記事は読み放題です。
現在のForgeになるまでの経緯
2024/6/8に開発者であるllyasvielさんから「日常的に使用するWebUIはA1111を推奨する」というアナウンスがありました。
https://github.com/lllyasviel/stable-diffusion-webui-forge/discussions/801
主な理由としてA1111のアップデートによりパフォーマンスが改善されることと、そのバージョンに対してforgeの機能を実装するにはコストがかかりすぎることを挙げています。
また今後は実験的なリポジトリになるとのことで、Gradio4に対応させるとほぼ全ての拡張機能が壊れることから、A1111へ戻ることを推奨していました。
これにより一時期forgeの開発が中止になったと話題になり、Forgeを引き継ぐ形でreForgeなども登場しています。
https://github.com/Panchovix/stable-diffusion-webui-reForge
しかし、現在は開発が再開?というか、これが元々言っていた実験的なリポジトリなのかわかりませんが、UIが新しくなりFluxにも対応しました。
なお、forgeの動向を受けてreForgeの開発を中止するか議論が交わされていましたが、こちらは継続するそうです。
https://github.com/Panchovix/stable-diffusion-webui-reForge/discussions/109
最新版Forgeの違いは?
パフォーマンスとか内部のことはよくわからないので、わかる範囲で外観・機能・注意点などをお伝えします。
ベースはA1111の1.10.0
最新版forgeはA1111の1.10.0をベースに作られています。
そのため、Sampling methodとSchedule typeが分かれている、SVD・Z123タブがないなど若干UIが異なります。

A1111も併用している方であれば問題ないと思いますが、forgeを愛用していた方だと慣れるまで少し操作に戸惑うかもしれません。
バージョンよる違い
現在Forgeは異なるtorch+CUDAのバージョンがリリースされています。
そのまま日本語訳したものですが、違いはそれぞれ以下の通りです。
・Forge with CUDA 12.1 + Pytorch 2.3.1:推奨バージョン
・Forge with CUDA 12.4 + Pytorch 2.4:高速だけどMSVCのバグ、xformersが動作しない可能性がある
・Forge with CUDA 12.1 + Pytorch 2.1:以前使用されていた古いバージョン
githubからダウンロードが可能。
https://github.com/lllyasviel/stable-diffusion-webui-forge
またパッケージ版インストールの注意点として、「update.bat」を実行してから「run.but」を実行するよう書かれています。
「update.bat」は管理者として実行する必要があることに注意してください。
普通に実行するとエラーがでます。
git cloneでもインストールは可能で24年8月12日時点で「pytorch version: 2.4.0+cu124」になります。
またzutanさんという方が簡単に最新版forgeを使えるEasyForgeというものもリリースしています。
https://github.com/Zuntan03/EasyForge
元のForgeをそのまま残しておきたい方はパッケージ版やEasyForgeでインストールすれば分けて使えます。
UIがモデルごとに切り替え可能に

以前のForgeではcheckpointを変更すると、そのモデルに合わせて対応するLoRAなどが切り替わっていました。
最新版ではsd・xl・flux・allの4つを手動で切り替えられるようになっています。
選択するとそのモデルに対応した画像サイズやパラーメータに切り替わります。
なお、User interfaceでvaeなどを表示しても、xlやfluxだと表示されません。
XL・fluxモデルでclip skipやvaeを変えたい場合は、allにして実行する必要があります。
2024年8月14日追記:アップデートで修正されました。
fluxに対応&使い方
今話題のfluxモデルに対応しました。現在高速生成可能なnf4やfp8モデルに対応しています。
※Black Forest Labsから提供されている本家のflux1-devやflux1-schnellは動かせません。
追記:こちらもアップデートにより、本家のモデルも動かせるようになりました。
それぞれモデルはhuggingfaceからダウンロードできます。
Black Forest Labsの公式モデル
・FLUX.1-dev (Hugging Faceにログイン、規約への同意が必要)
・FLUX.1-schnell
高速生成可能なnf4モデル
・dev
・schnell
fp8の軽量モデル(dev)
GGUF:軽量かつ高クオリティモデル
いろいろあって私もよくわかっていないのですが、ネット情報を見る限りこんな印象です。
本家dev:高クオリティ・処理が長く重い
本家schnell:低ステップ生成可能・クオリティはdevに劣る
nf4:高速生成可能・VAE・CLIPの指定が不要
fp8:高速生成可能・VAE・CLIPの指定が不要
GGUF:軽量・比較的高クオリティ
使用するモデルは以下のパスに置いてください。
C:\stable-diffusion-webui-forge\models\Stable-diffusion
また本家のモデルやGGUFモデルを使う場合は、VAE・CLIPが必要になります。
・VAE
・CLIP
clip_lとfp8・fp16どちらかが必要です。
全て以下のパスに置いてください。
C:\stable-diffusion-webui-forge\models\VAE
・使い方
Forgeを起動したらまずUIをfluxに切り替えます。

次に使用したいモデルをcheckpointで選んでください。
ここではnf4を使用します。

nf4やfp8モデルの場合は、VAEの設定は必要ありません。
パラメータも自動的にnf4用になっているので、生成したい内容をプロンプトに入れて、generateを押すだけです。
※nf4で生成した画像

もし公式、GGUFモデルを使用する場合は、VAE / Text Encoderの設定が必要です。
VAEはae.sefetensors、CLIPはclip_iと、fp8・fp16のどちらかを選んでください。

またモデルによって推奨パラメータが異なります。
この通りじゃなくても生成できますが、ネット上の情報を見るとこんな感じです。
公式dev:step50、guidance3.5
公式schnell:step4、guidance1
GGUF:step4~8
あとはプロンプトを入力して生成すれば、ちゃんと出力できると思います。
・公式devで生成した画像

Diffusion with Low Bitsが追加
使用モデルに応じて「Diffusion with Low Bits」を切り替えられるようになりました。

基本「auto」にしておけばモデルを変えても自動的に対応してくれるそうです。
However, in most cases, you can just set it to Auto and then it will use the default precision in your downloaded checkpoint.
しかし、ほとんどの場合、Autoに設定すれば、ダウンロードしたチェックポイントのデフォルトの精度が使用されます。
あと公式にあるサンプルと同じプロンプト・パラーメータで生成しても結果が異なるという報告があります。
プロンプト:Astronaut in a jungle, cold color palette, muted colors, very detailed, sharp focus
パラーメータ:Steps: 20, Sampler: Euler, Schedule type: Simple, CFG scale: 1, Distilled CFG Scale: 3.5, Seed: 12345, Size: 896x1152, Model: flux1-dev-bnb-nf4
これはUser interfaceで「Random number generator source」を表示し、CPUを選択すると解消されるようです。

・公式のサンプル

・左がGPU、右がCPU

これでも若干草木に違いがあるのですが、大きく結果が違う場合はここの設定で直る可能性があります。
Swap LocationとGPU Weights (MB)

Swap Locationは処理するGPUを分割できる機能で、GPU Weights (MB)はそのまま使用する最大メモリを指定できます。
Swap LocationはSharedの方がCPUより15%高速だそうです。ただデバイスによってはクラッシュすることがあるとのこと。
GPU Weightsは値が大きいと生成速度が上がります。
小さいと速度は遅くなりますが、大きな画像も生成できるようになるそうです。
あまり具体的なことは分からないので詳細は公式を確認してください。
「Getting Theoretical Upper Bound of Inference Speed」の項目で説明されています。
https://github.com/lllyasviel/stable-diffusion-webui-forge/discussions/981
Forge Canvasの実装

gradio4に対応したことでimg2imgなどで使えるCanvasが新しくなりました。
以前とマスクの色や操作方法が少し異なります。
Canvas上にあるアイコンは左から「全画面表示・画像取り込み・画像削除・初期位置に戻る・更新(初期化)・1つ前に戻る・1つ後に進む」です。
画像は右クリック&ドラッグで移動、マウスホイールで拡大・縮小ができます。
以前のようにCtrl+マウスホイールでペンの大きさは変えられないようです。
sketchだと上記と合わせて、色や透明度なども変えられます。

一部拡張機能の動作不良
最新版forgeだと一部の拡張機能が動かなくなることが確認されています。
動作する・しないはdiscussionsで報告されているのでこちらをご確認ください。
私個人で確認したものだとdataset-tag-editorは使えなくなっていました。
拡張機能については随時対応中のようで、今使えなくても今後使えるようになるかもしれません。
デフォルトでStyleにいろいろ追加

プロンプトを保存できるstyle機能にデフォルトでいろいろ追加されています。
基本テイストや画風、シチュエーションを指定できるもので、スチームパンク風・アニメ風とかのプロンプトが使用可能。
前のstyleに保存していた奴を使う場合は、styles_integrated.csvに加えるか、名前を変更する必要があります。
こちらはstyles_integrated.csvという名前になっており、以前のstyle.csvと分けて使用できるようになっていました。
プルダウンに2つとも表示されるので、別々のファイルとして管理できます。
SD1.5やSDXLに大きな違いはなさそう?
ちゃんと比較していないのでハッキリしたことは言えませんが、少なくとも生成が遅くなっているということはないと思います。
前のForgeを消しちゃったのでreForgeで試したのですが、SDXL1枚作るのに32.6 secとどちらも全く同じ速度でした。
ただプロンプト・シード値・パラメータも同じはずなんですが、結果に違いがありました。
ネット上のプロンプトやシード値を真似て再現する場合などは少し違いが出てしまうかもしれません。

追記:LoRAデータ共有してなくて反映されてなかっただけでした。
若干建物の描写に違いはあるものの大きな変化はなく、正常に生成できます。失礼しました。

結論:不安な人は様子見。容量に余裕ある人は試してみてもいいかも。
fluxへの対応やそれに追随する機能の追加が最新版forgeのメインになっている部分だと思います。
なのでSD1.5・SDXLをメインで使っていて、拡張機能が使えなくなるのが不安という方は、移行は待った方がいいかもしれません。
容量があれば分けて使えるので、興味がある方は試してみてもいいと思います。
以上最新版Forgeの違いや注意点について紹介しました。
当サークルではこのようなAIに関するさまざまな記事を発信しています。
メンバーシップに加入して頂くと一部の有料記事は読み放題です。
AI技術の向上、マネタイズ方法などに興味がある方は、ぜひご検討ください。
いいなと思ったら応援しよう!
