StabilityMatrix版 WebUI Forgeが起動しない
現在、Stable Diffusion WebUI Forgeを「StabilityMatrix」を利用してインストール、起動していますが、先日のパッケージ(WebUI Forge)のアップデートを行ってから起動出来なくなってしまいました。中身の事はサッパリなので詳しい事は分かりませんが、その後に「一応」起動出来る様になったので、方法を書いておきます。
注記
この記事の内容は私の環境(方法)での場合です。記事内容を元にした作業等を行っても、その通りの結果とならなかったり、他の問題や不具合が発生する場合もあります。実際の作業等は自己責任と自己判断の上で行ってください。
状況
Stable Diffusion WebUI Forgeを使用する為に「StabilityMatrix」を立ち上げると、WebUI Forgeに更新があるとの表示になっていました。これまでの更新では何の問題も無かったので、特に気にせずに更新を行うと、「インストールの失敗(failed)」となってしまいました。以後、「Launch」ボタンでWebUI Forgeを起動しても、以下のエラーとなって起動する事が出来ません。
ちなみにWebUI Forgeを「新規インストール」しても同じ(インストールの失敗)で、新規インストールではインストールが完了しない事から、パッケージ画面(WebUI選択画面)に表示されませんでした。
なお、StabilityMatrixはポータブルモードでインストールしています。
2024年7月30日追記(解決・記事公開時の問題)
「StabilityMatrix」側に更新があり(2.11.4 → 2.11.5)、更新内容の中に今回の問題点の内容#782(StabilityMatrixのGitHub)が含まれています。今回の問題は「StabilityMatrix」側だった様です。
「StabilityMatrix」を更新後、改めてWebUI Forgeを更新すると、これまでは更新は完了せずに失敗(failed)となっていましたが、今回は完了(Complete)しました。
「StabilityMatrix」とWebUI Forgeを共に更新すると、WebUI Forgeは無事に立ち上がりました。しかし、一部拡張機能のエラー表示は依然として残っています。この問題に関しては、メジャーアップデートの「Gradio」に関するWebUI Forge側の問題点(WebUI ForgeのGitHub)なのでしょうか?
また、下記エラー修正で「pydantic」を「1.10.15」から「2.8.2」に変更しましたが、「StabilityMatrix」の更新後は「requirements_versions.txt」内から「pydantic」の記載は無くなっています。またWebUI Forgeの「pythonパッケージ」内での「pydantic」は修正後の「2.8.2」のままです。これを「1.10.15」に戻した方が良い?と思いましたが、同時にインストールしていた「kohya_ss」も「2.8.2」だったので、そのままにしています。
---追記(解決)ここまで---
WebUI Forgeのメジャーアップデートによる起動問題(2024年8月13日追記)
「StabilityMatrix」で問題が発生したタイミングと同時に、WebUI Forgeでは大型アップデートによる改定が行われました。改定には10日間掛かるとの事で、その間はアップデートを行っても起動しない場合があったり、利用出来ない拡張機能があったりしました。以下はその改定期間での内容です。
再び起動せず(2024年7月31日追記)
WebUI Forge(GitHub)は「gradio 3.x」環境での開発は終了し、WebUIへの移行を推奨していました(GitHub)。今後、拡張機能で多くのエラーが起こる可能性がある事も言及しています。ただしその後、別の方が「reForge(GitHub)」という形で引き継いだ様です。
StabilityMatrix上ではパッケージとしてreforgeは無いので、WebUIに入れ替えようかと思っていた所、本家のWebUI Forgeは「gradio 4.x」環境に移行するとの事。さっそく今日、StabilityMatrix上でWebUI Forgeの更新がありましたが、これで「gradio 4.x」環境になった様子。このまま移行しなくても良さそう?
…と思ったら、また上記の更新後に起動しなくなりました。 ※ 以下、元に戻した方法を記載します。
※その後、新規にインストール(現時点での最新コミット「f052fab」)して、拡張機能等を何も追加していない素の状態であれば起動しました。しかし拡張機能をインストールすると起動出来ませんでした。原因がどの拡張機能かまでは追及していませんが、しばらくは下記方法で「gradio 3.x」環境のコミット「9cb69ba」を使う事にします。
※※さらにその後、WebUI ForgeのGitHubで同じエラー内容の報告がありました。起動しない場合の最終行で「ModuleNotFoundError: No module named 'diffusers.loaders.single_file_utils’」と表示されます。
- 最新版のStabilityMatrix(2.11.5)を、別のフォルダーに展開。
- 「パッケージの追加」からWebUI Forgeをインストール。この記事最下部「補足」を参照。
- その際、「高度なオプション」でコミット「9cb69ba」を選択。
- インストールが完了したら、起動しなくなったWebUI Forgeと入れ替え。
- その際、必要なモデルやローラ、拡張機能などはコピー。
スタンドアロンのWebUI Forgeであればコミット「29be1da」が「gradio 3.x」環境での最終安定版だそうですが、StabilityMatrix上では履歴として表示されません(流れちゃった?)。「9cb69ba」は私の環境で昨日(2024年7月30日)まで、StabilityMatrix「2.11.5」上で起動していたコミットです。ただし拡張機能の幾つかでエラーが出ています(mov2movやTrain等のタブも表示されない)。ここ数日は、StabilityMatrix上でのWebUI Forgeの更新が非常に頻繁にあり、気が付けば数時間後にはまた更新がある状態。コミットも矢継ぎ早に変更されているので、「9cb69ba」もWebUI Forgeの更新が続けば流れてしまいそうです。
※従って、今後StabilityMatrix上でWebUI Forgeの更新があってもしばらくは更新を行わない、あるいはバックアップを持っておく方が良さそうです。
---7月31日追記ここまで---
2024年8月3日追記
WebUI Forgeの作者さんが、以下の様にGitHubに記載しました。以下にGoogle翻訳にて翻訳後、引用して記載します。最近の更新の多さは、下記理由からと思われます。
WebUI Forge は現在、2024 年 8 月 1 日から 8 月 7 日までの 1 週間にわたって大幅な改訂が行われます。テストに参加するには、最新の不安定バージョンに更新するだけです。
以前のバージョンをダウンロードするには、「以前のバージョン」を参照してください。
WebUI ForgeのGitHubより
※その後少々遅れがある様子で、上記記載は「8月10日まで」になっていました。
「以前のバージョン」では「gradio 3.x」環境での最終安定版と思われる圧縮ファイルが公開されていますが、スタンドアロン版なので、これを展開してStabilityMatrixにインポートする方法は分かりません(スタンドアロンでもバッチファイルの実行等の作業が必要ですが)。
---8月3日追記ここまで---
起動可能(2024年8月4日追記)
WebUI Forgeを新規インストールして、使用している拡張機能を全てコピーした状態の「テスト環境」を作りました。昨日までは起動する事は出来ませんでしたが、今日更新されたコミット「6dd8cd8」で起動する様になりました。幾つかの拡張機能は引き続きエラーが出ていますが、見た目上では7月31日の「gradio 3.x」環境でのコミット「9cb69ba」と同じになった様子。確実に「gradio 4.x」環境への改定が進んでいる印象です(まだ移行はしません)。
※「gradio 4.x」環境で動作しない拡張機能は、WebUI forgeのGitHubで報告が挙げられています。
---8月4日追記ここまで---
2024年8月13日現在、WebUI Forgeは約95%の改定作業が完了したとありますが、メジャーアップデートによる「UIプリセット機能」が組み込まれた様です。UIプリセットはsdやXLでUI表示を切り替える事が可能で、さらに今回から「Flux.1チェックポイント」もサポートされる様になっています。またGPU側とシステム側でモデルを分割してロードさせる事が、より明示的に可能となりました。
…といいつつ、個人的にはまだまだ何がなんだか不明点だけなのですが、GitHubでその解説が挙げられています。そのGitHubでも今回のアップデートの質問が多くなっていますが、拡張機能についても、8月13日現在でもまだまだ利用出来ない機能は多い様子です。従って、本格的に移行するにはまだ時間が掛かる印象もあります。
---2024年8月13日更新ここまで---
WebUI Forge「gradio 4.x」について(2024年9月12日追記)
最近、civitai等で公開されるモデルやLORAは、「Flux.1」バージョンが急速に増えつつある印象です(Flix.1についてはこちら→窓の杜)。WebUI Forgeも「gradio 4.x」に移行したのと同時に、Flux.1が利用出来る様になりましたが、これまで利用出来ていた拡張機能が利用出来なくなってしまった事もあります(拡張機能側で長らく更新が無い事も一因?)。Flux.1とデフォルトの拡張機能のみで十分という意見もある様子ですが、現状ではSD1.5やSDXLは「gradio 4.x」への移行直前のWebUI Forge(GitHub)で使い分ける事が推奨される様です。
しかしながら、やはり拡張機能の利用を望む声もあり、WebUI ForgeのGitHubではWebUI Forgeの開発者さんがこちら(GitHub)で古い拡張機能からの置き換えが可能な物の報告スレッドを立てています。また以前からこちら(同GitHub)でも情報があります。
「gradio 4.x」のWebUI Forge、確かに画像生成速度も向上している様子ですが、モデルの読み込みタイミングも変わったせいか、なんとなく使い難い印象…。現在も頻繁にアップデートがあるので、まだまだ良くなっていくのでしょうけれど、Flux.1と合わせて試す時間がなかなかありません。
---2024年9月12日追記ここまで---
過去のコミットを指定してインストールする(2024年9月18日更新)
2024年9月18日、StabilityMatrixが「2.12.0」に更新されました。この更新で過去のコミットを指定してインストールする事が可能になりました。また、「WebUI reForge」もパッケージに加えられています。
※2
インストール済みのWebUI Forgeを更新(バージョンダウン)する場合は、パッケージ名称横の3点●をクリックし、「Change Version」を選択します。
これまでは過去10個のコミットのみが表示され、その中から選択していましたが、一番下に「Custom」が追加されています。Customを選択すると、任意のコミットを入力する事が出来ます。先の「メジャーアップデートによる起動問題」内で触れた、コミット「29be1da」を入力して「更新」をクリックすると、バージョンダウンが行われます。
私の環境(「9cb69ba」からのバージョンダウン)では更新後にWebUI Forgeを立ち上げると、上記のエラーウィンドウが表示されましたが、WebUI Forge自体は立ち上がりました。「gradio 4.x」環境では利用不可・表示されていなかった拡張機能も、改めて表示されました。ただし上記エラーウィンドウの他、バージョンダウンではまた他の不具合の心配もあるので、新規にインストールし直す事にしました。
新規インストールの場合も、コミットの任意指定が可能になっています(最初の「ようこそ」ウィンドウではなく「パッケージの追加」から)。
…新規インストールしてもエラーウィンドウは表示されました。ただし、利用出来なかった拡張機能が復活するなど、コミット「9cb69ba」よりは以前の環境に戻れたので、この状態で現在の「gradio 4.x」環境での改善を待ちたいと思います。また、※2で「アップデートチェックを無効にする」を有効にすると、更新ボタンは表示されなくなります。
上記エラーウィンドウについては「xformers」に関するエラーで、これを解消するにはパッケージのStable Diffusion WebUI Forgeフォルダ内にある「venv」フォルダを、一旦適当な別名に変更した上でWebUI Forgeを立ち上げると、「venv」フォルダ以下が再インストールされてエラーウィンドウも出なくなりました。立ち上げ後のWebUI Forgeを確認した上で問題が無さそうであれば、別名にした元の「venv」フォルダは削除します。
ただし、「venv」フォルダを別名にしてから初回の立ち上げ中に「PLEASE,RESTART the Server!」と再起動を促されるのですが、その通りに一旦「ストップ」し、「リスタート」を行いましたが、同じ再起動メッセージが繰り返されるだけ。やはり面倒な事になったとしばらく放置していたら、そのまま立ち上げが進み、WebUI Forgeが立ち上がりました。…これに気が付くのに2時間は費やしました。
---2024年9月18日追記ここまで---
エラー内容(記事公開時)
私の場合、起動時に表示されるエラー内容は、最終的には以下です。
ERROR: Cannot install fastapi==0.104.1, gradio==4.39.0 and pydantic==1.10.15 because these package versions have conflicting dependencies.
The conflict is caused by:
Stable Diffusion WebUI Forge起動時の表示内容より
The user requested pydantic==1.10.15
fastapi 0.104.1 depends on pydantic!=1.8, !=1.8.1, !=2.0.0, !=2.0.1, !=2.1.0, <3.0.0 and >=1.7.4
gradio 4.39.0 depends on pydantic>=2.0
要求しているバージョンに対して依存やら競合やら、なんたらかんたら…。問題はStabilityMatrixではなく、「WebUI Forge」その物? ※「StabilityMatrix」側でした。
修正(記事公開時)
私の場合はこちらのサイト(reddit)での投稿内容を元に、以下の2点を修正してみた所、WebUI Forgeが起動して画像生成は一応可能となりました。※この先の「注意点」も参照して下さい。
追記
現状、エラーがあっても新規インストールで使用したい場合(要修正)の方法を、記事最下部に追記しました。
1.「pydantic」を2.8.2にする
※その後、下の2.の書き換えのみを行って起動しても、「pydantic」は2.8.2に置き換わっていました。よって、この1.の修正は不要です。万が一置き換わらない場合にはこの方法で変更して下さい。
StabilityMatrixのパッケージ画面で「WebUI Forge」の右上にある「3点●」から、「pythonパッケージ」を選択し、表示されるウィンドウ内で「pydantic」を「1.10.15」から「2.8.2」に変更します。変更時に押すボタンでは「バージョンアップ」となっています。
※環境によっては「pydantic」が無い場合がある様です。その場合は次の「2.」のみを変更。
2.プログラム内の要件バージョンを書き換える
WebUI Forgeのプログラム内で「requirements_versions.txt」ファイルを開き、「pydantic==1.10.15」を「pydantic==2.8.2」に書き換えます。書き換え後は上書き保存。「pydantic==1.10.15」は一番下にありました。
※念の為「requirements_versions.txt」のコピーを取っておく様に。ファイルの場所は「~\StabilityMatrix\Data\Packages\stable-diffusion-webui-forge」。
注意点
以下は、現在の私の場合(修正後)での状態です。
- StabilityMatrix上でWebUI Forgeの更新を行っても完了しない(failed)。また常に「更新がある」との表示が続く。
- 更新を再び行ってしまうと、「requirements_versions.txt」が元に戻ってしまう。「pydantic」は「2.8.2」のまま。
- 修正を行ってから起動すると、起動中に幾つかの拡張機能にエラーがあると表示される。
あくまで一応起動出来ただけの形で、拡張機能の中には利用出来ない物もあると思われます。今回のWebUI Forgeの更新では、比較的大きな機能変更があった様子ですが、さらに問題を修正した更新を待つしか無さそうです。WebUI ForgeのGithubでも、同様の問題の報告が幾つかあります。
新規インストールからの使用(記事公開時)
現状でエラーがある状態(要修正)でも、新規インストールで「WebUI Forge」を使用したい場合は、とりあえず「StabilityMatrix」でWebUI Forgeのインストールを行います。
しかしインストールに失敗するので、パッケージ画面(WebUI選択画面)にも表示されません。ここで一旦「StabilityMatrix」を終了し、再び立ち上げます。
※1(後述)
すると、パッケージ画面に「unknown」として表示されるので、「インポート」をクリックしてインポートを行います。
インポートが完了すると「Launch」ボタンが表示され、WebUI Forgeを起動する事が出来ます。ただし現状はエラーがあるので、先の2点の修正が必要です。修正後はWebUI Forgeが立ち上がりました(注意点を参照)。
補足
「StabilityMatrix」の起動後、他のWebUIをインストールしていない場合は上記の初期画面が出ますが、一旦スキップしてウィンドウ下部の「パッケージの追加」をクリックします。
改めてWebUI Forgeを選択すると、高度なオプションを選択出来ます。この中で「コミット」が選択出来るのですが、最上部が選択されている状態から別のコミットを選択してインストールしても、エラーは回避できませんでした。また先の※1でも、インポートの際にバージョンが選択出来ますが、これを変更しても同様にエラーは回避出来ず。
スタンドアロンのWebUI Forgeでは、過去のバージョンファイルとバッチファイルから修正出来る様子(WebUI Forge GitHubでの報告)ですが、私は「StabilityMatrix」を介しているので試していません。