見出し画像

SD WebUIが正常に動作しない!A1111 WebUIのトラブルシューティングについて徹底網羅!



はじめに


皆さんはこんな経験ありませんか?

「よーし、今日は新しいモデルでイラスト生成するぞー!」

WebUI上のエラー画面

と、このようにエラー出力されて、生成がうまく完了しないとか、期待した動作が行われないなど、結構よくあるものです。

今回は、AUTOMATIC1111 WebUI(以下WebUI)の使用中に、「こんな時どのように対処すればいいの!?」ということを、ケース別に紹介していこうと思います。

大体この記事を見たら解決できるよう、頑張って書いていきます…!


Changelog




主なトラブルの原因と対処方法


主に以下が考えられます。

  1. WebUIのアップデートによる仕様変更不具合

  2. 拡張機能アップデートによる仕様変更不具合

  3. ユーザ操作による不具合

中でも、1と2が大半を占めており、WebUI及び拡張機能アップデート時は注意が必要です。
基本的には、大幅なアップデートが行われ、バグが発生しているパターンに多く見られます。

それらが確認できた場合は、WebUIに限らず拡張機能も、今まで安定的に使えてたバージョンへの切り戻しが最も有効です。


WebUIのダウングレード方法


[ 前提条件 ]
WebUIのアップデート直後に、不具合を確認した場合

[ 手順 ]
1. まず初めに、Gitのログを確認するため、WebUIのvenv環境へアクセスします。

./stable-diffusion-webui/venv/Scripts/Activate

2. 次に、以下コマンドを入力します。

git log
Git Commitハッシュが確認できますね

上記のtagを確認すると、v1.5.1のCommit履歴ですね。

3. ダウングレードしたいCommitハッシュをコピーし、以下コマンドを入力する。

git checkout <commit hash>

※上記の<commit hash>部分に、コピーしたCommitハッシュを貼り付けてください。

今回の例に沿って記述すると、以下のようになります。

e.g.)
versions : v1.5.1
commit hash : 68f336bd994bed5442ad95bad6b6ad5564a5409a

git checkout 68f336bd994bed5442ad95bad6b6ad5564a5409a

4. 実行!

HEAD is now at 68f336bd Merge branch 'release_candidate'
A       3.30.0
A       4.8.0
A       configs/v2-1_768-ema-pruned.yaml
D       embeddings/Place Textual Inversion embeddings here.txt
D       extensions/put extensions here.txt
A       icon.ico
D       models/Stable-diffusion/Put Stable Diffusion checkpoints here.txt
D       models/VAE-approx/model.pt
D       models/VAE/Put VAE here.txt
D       models/deepbooru/Put your deepbooru release project folder here.txt
D       models/karlo/ViT-L-14_stats.th
A       modules/sd_hijack_.py
A       style_.css
A       umerge_style/style.csv
M       webui-user.bat

上記のような出力結果が得られたら完了です。


拡張機能のダウングレード方法


[ 前提条件 ]
拡張機能のアップデート直後に、不具合を確認した場合

[ 手順 ]
1. まず初めに、対象の拡張機能のGitリポジトリにアクセスします。

今回は、いつもお世話になっているhako-mikanさんの神拡張機能である、Super Mergerを例に挙げさせて頂きます!いつもありがとうございます!

2. Gitブランチを選択します。

全てのブランチを確認したいので、[ View all branches ]を開いてください。
※ちなみに、上図の[ 17 branches ]と記載のある部分をクリックしても、同じページに遷移します。

3. 対象のブランチをダウンロードする。

ダウンロード方法は2方法あります。

  1. git cloneを利用して、ブランチ指定でリポジトリからダウンロードする。

  2. WebUI上でブランチ指定してダウンロードする。

お好きな方をお選びください。
以下でどちらも解説します。


git cloneを利用して、ブランチ指定でリポジトリからダウンロードする方法


まず初めに、お約束ですがvenv環境に入ります。

./stable-diffusion-webui/venv/Scripts/Activate

次に、Change Directoryでextentionsフォルダへ入ります。

cd ./stable-diffusion-webui/extentions

以下コマンドを入力します。

git clone -b <branches> <repos address>

※上記コードの<branches>には、上項で確認した対象のブランチ名が入ります。
 併せて、<repos address>には、上項のGitリポジトリ名が入ります。

今回の例に沿って記述すると、以下のようになります。

e.g.)
branches : ver14
repos address : https://github.com/hako-mikan/sd-webui-supermerger.git

git clone -b ver14 https://github.com/hako-mikan/sd-webui-supermerger.git
Cloning into 'sd-webui-supermerger'...
remote: Enumerating objects: 2132, done.
remote: Counting objects: 100% (1098/1098), done.
remote: Compressing objects: 100% (318/318), done.
remote: Total 2132 (delta 868), reused 980 (delta 776), pack-reused 1034
Receiving objects: 100% (2132/2132), 17.18 MiB | 25.09 MiB/s, done.
Resolving deltas: 100% (1292/1292), done.

以上で指定バージョンでの導入が完了します。


WebUI上でブランチ指定してダウンロードする方法


こちらはアクセス権限の関係で、環境によってはアクセス拒否される可能性がありますが、コマンドを入力する必要がないので、とても簡単に導入ができます。

では初めに、いつものように拡張機能をURLからインストールする方法で行う為、[ Extentions ] - [ Install from URL ]タブを開きます。

あとは[ URL for extention's git repository ]の項目に、Gitリポジトリ名を入力し、[ Specific branch name ]にはブランチ名を入力します。

今回も、例に沿って入力してみます。

e.g.)
branches : ver14
repos address : https://github.com/hako-mikan/sd-webui-supermerger.git

あとは、いつも通り[ Install ]をクリックし、しばらく待つと導入が完了します。


何度も再構築するのが面倒な方は…(参考)


是非、はかな鳥さんのnoteを参考にしてみてください!
導入から管理、再構築がとても簡単に行えるようになります!

私もWebUIは自身で管理していましたが、Stability Matrixを使い始めてから悩みが解消しました!

※案件じゃないです。


環境構築時のトラブル


1. 導入直後、起動しようとするとFatal Python errorが発生する


[ 原因 ]
venv環境の不具合。

[ 対処方法 ]
venvフォルダ自体を削除して、バッチを起動してください。
WebUI起動中にvenvが再構築されます。
venvフォルダは以下にあります。

./stable-diffusion-webui/venv/*

[ 解説 ]
原因は多岐に渡る為、一概には言えませんが、このエラーは主にPython側の致命的エラーである為、venv環境を構築することで復帰することが多いです。



2. WebUI起動完了直後にバッチが強制終了する


Startup time: 83.8s (launcher: 19.3s, import torch: 12.3s, import gradio: 5.7s, setup paths: 5.9s, other imports: 7.9s, opts onchange: 0.6s, setup codeformer: 0.5s, list SD models: 3.4s, load scripts: 18.7s, reload hypernetworks: 0.1s, create ui: 7.8s, gradio launch: 1.1s, add APIs: 0.1s, app_started_callback: 0.1s).
続行するには何かキーを押してください...

[ 原因 ]
・ui-config.jsonの破損
・異なるバージョンのui-config.jsonをインポートしている
・ui-config.jsonの記述不具合
など、ui-config.jsonの不備によって発生している可能性あり。

[ 対処方法 ]
ui-config.jsonを初期化する為、別フォルダで同一バージョンのWebUI環境を構築し、ui-config.jsonを移植する。
(不備箇所が分かるのであれば、記述修正でも可能)

[ 解説 ]
ui-config.jsonはWebUI上の規定値や初期値など、UIに関する設定値を司っているjsonファイルです。
データ型がINT型なのに、文字列(String型)が記載されていたり等すると、このような症状が発生する可能性があります。
この現象は通常は起こりえませんが、起こりえる可能性があるとすれば以下のような事例です。

例えば、過去に一度ui-config.jsonをテキストエディタ等で開いたことがあり、そのテキストエディタの文字コードがUTF-8形式以外で読み込まれていたのに、そのまま保存してしまった。
それによって一部が文字化けした状態で設定ファイルが読み込まれた為、設定が正しく読み込まれず強制終了した。

上記以外にも発生要因はあると思いますので、同一の症状があった際は、まずui-config.jsonを疑ってみましょう。
※ファイル読み込む場合、プログラム側でコーディング指定が可能なので、WebUIのバージョンによっては改善されている可能性があります。



3. 起動直後、ブラウザがハングアップする


[ 原因 ]
config.jsonの不整合。

[ 対処方法 ]
・config.jsonを削除し、WebUIの[ Settings ] にて[ Apply Settings ]を押し、config.jsonを初期化・再構築してみる。(config.jsonは以下フォルダにあります)

./stable-diffusion-webui/config.json

・WebUIを再構築してみる。

[ 解説 ]
主にWebUIアップデート直後に頻発するようです。
その為、新バージョン仕様のAPIとconfig.jsonが不整合を起こしている可能性もあるので、一度config.jsonを削除し、起動してみましょう。
それでも改善されない場合は、環境を再構築するのがよいかと思います。



4. launch.py: error: unrecognized argumentsが発生する


[ 原因 ]
起動オプションの指定不備。

[ 対処方法 ]
正しく起動オプションを指定してください。

[ 解説 ]
主な原因として、ハイフン(-)が2個ではなかったり、全角ハイフンであったりすることが多いです。
今一度、起動オプションを見直してください。



5. RuntimeError: ~ DefaultCPUAllocator: not enough memory~と表示される


[ 原因 ]
RAM不足。

[ 対処方法 ]
・RAMの増設
・仮想RAMを増やす

[ 解説 ]
物理メモリが不足しており、起動できないことを示しています。
物理メモリを増やすか、仮想メモリを増やして実行してみてください。



6. ReadTimeout: HTTPConnectionPool~と表示され、起動できない


[ 原因 ]
メモリスワップ(*1)によって、コネクションロストが発生している。

[ 対処方法 ]
・RAMの増設
・仮想RAMを少なくする

[ 解説 ]
物理メモリが不足している為、仮想メモリを使用している環境で発生します。
これは、物理メモリ側のアロケーションが行われてメモリスワッピングが行われると、コネクションプールで持っている接続先が変わってしまい、TCP Ack応答が得られず、結果的にTCP 3 Way Hand Shake (*2)に失敗していると思われます。

一般的にHTTP/HTTPS接続(WebUIにおいてはHTTP localhost接続)はTCPソケットを利用する通信があるので、その通信が確立しなければ規定回数、再接続を実施し、応答がなければタイムアウトとなります。
表題のエラーは、この現象が発生しているものと思われます。

[ 補足 ]
*1 : メモリスワップとは、物理メモリ上のキャッシュを仮想メモリへ退避させることで、物理メモリを確保する処理のことです。

*2 : TCP 3 Way Hand Shakeとは、TCP接続時のシーケンス処理のことを指します。
TCP接続は3段階の処理(SYN / SYN-ACK / ACK)が行われ、接続確立(FIN)となります。
どの処理段階でも未応答・欠落すると、この接続は確立しません。



7. RuntimeError: Couldn't install torchと表示される


[ 原因 ]
アンチウィルスソフトによりPythonのPIPが正常に機能していない。

[ 対処方法 ]
アンチウィルスソフトにてvenvフォルダを例外ルールに追加する。

[ 解説 ]
PIPに限らず、様々なリポジトリからダウンロードしてくる実行ファイル系は、アンチウィルスソフトに挙動を止められます。
それにより、Torchが導入できず、このエラーが発生しているものと思われます。


8. Couldn't launch pythonと表示され、起動できない


[ 原因 ]
PythonへのPATH(環境変数)が通っていない

[ 対処方法 ]
・システム環境変数にて、Python.exeまでのPATHを設定する。
・webui-user.bat内の[ PYTHON ]にPython.exeのPATHを設定する。

[ 解説 ]
Pythonの実行ファイルが参照できず、エラーとなっているので、Python.exeのパスを設定しましょう。


9.TypeError: AsyncConnectionPool.__init__() got an unexpected keyword argument 'socket_options'と表示され、起動できない


TypeError: AsyncConnectionPool.__init__() got an unexpected keyword argument 'socket_options'

[ 原因 ]
依存パッケージのhttpxが最新バージョン(0.25.1以降)になり、互換性がない

[ 対処方法 ]
requirements_versions.txtの最下部に「httpx==0.24.1」を追記して、venvを全削除し再構築する。

[ 解説 ]
依存パッケージのhttpxが最新バージョンとなり、エラーとなっています。
この不具合は既知の不具合で、SD WebUI公式Githubのissuesにも挙がっています。

対象パッケージ(httpx)のダウングレードを行えば解消されます。


10. コンソール上にはエラーは出ないが、WebUI上の一部ボタンが機能しない、UIレイアウトがおかしいなどの不具合がある(WebUI 1.6.0以降)


[ 原因 ]
ドットディレクトリ(e.g. [C:\python\.venv]等)を含む階層内に、WebUI環境を構築している。

[ 対処方法 ]
ドットディレクトリ外にWebUI環境を構築する。

[ 解説 ]
Gradioパッケージのセキュリティ仕様変更による影響です。
WebUI 1.5.2まではGradio 3.32.0を使用していましたが、WebUI 1.6.0以降からGradio 3.41.2にバージョンアップされています。
Gradioでは3.33.0以降より、「ドットディレクトリ内のファイルを読み出す際にブロックする」セキュリティ機能が拡充された為、引き起こされています。

その為、WebUI 1.6.0以降では、インストール先のパス内にドットディレクトリが無いことを確認し、インストールするようにしてください。

このissuesは、公式Githubでも確認できます。



生成関係のトラブル


1. Embeddings、LoRA/LyCORIS等が表示されない


[ 原因 ]
SDXL系Checkpointがモデルキャッシュされている。

[ 対処方法 ]
SD1.x系Checkpointに切り替え、LoRA/LyCORISのリストリフレッシュを行う。

[ 解説 ]
WebUIでは、Checkpointがキャッシュされている状態だと、その世代に未対応のEmbedding、LoRA/LyCORISが表示されなくなるよう、エラー対策がされています。
その為、SDXL系では異なるSDバージョンは強制的に使用不可状態になります。



2. OutOfMemoryErrorが発生する


OutOfMemoryError: CUDA out of memory. 
Tried to allocate 48.00 GiB (GPU 0; 12.00 GiB total capacity; 5.41 GiB already allocated; 0 bytes free; 53.31 GiB reserved in total by PyTorch)
If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.
See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

[ 原因 ]
1. 生成画像の解像度(サイズ)がグラフィックボードの処理能力を超えている。
2. VRAMキャッシュが何かしらの理由で正常にアンロードされておらず、逼迫している可能性がある。

[ 原因1 の対処方法 ]
対処1. メモリアロケータを適正に設定する。
 ./webui-user.bat 内の以下の項目を、[ call webui.bat ]より上部に追加する。

set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128,garbage_collection_threshold:0.6

[ 注意点 ]
副作用として、VAE処理が行われる際にVRAMを非常に多く使用する為、生成完了の時間が長くなる可能性があります。
これは、ガベージコレクション(GC)が影響しており、上記の設定だとVRAM使用量が60%を超えた場合に、VRAMの未使用キャッシュを解放する処理が発生します。
この処理が完了するまで、生成最終処理が中断される為、時間を要することになります。

対処2. 生成画像の解像度(サイズ)を落としてみる。
対処3. グラフィックボードを高性能なものに交換する(最終手段)

[ 原因2 の対処方法 ]
WebUIを一度バッチから終了して、再起動する。

[ 解説 ]
原因1については物理VRAM、仮想VRAMでプログラムにて予約されている未使用領域を使い果たすと、新しいキャッシュ処理ができなくなり、メモリリーク(メモリの漏洩)が発生することが原因です。
これを対処する為には、①VRAMの使用量を減らす、②メモリの使用効率を改善する、③マシンスペックを強化する、が挙げられます。
コスト面を鑑みると、①と②が対処しやすい為、メモリアロケータの最適化が有効と思われます。
但し、最適化にも限界がある為、上記で挙げた対処方法を複合的に行う必要が出てくる可能性があります。

原因2は、理由は様々ありますが、VRAMのメモリ最適化が何かしらの理由で行われず、VRAMリフレッシュされないのが原因です。
手っ取り早く解放するためには、VRAMを占有しているプログラムを終了させることなので、一度起動バッチを終了して、再起動すると直ることが多いです。



3. 綺麗な画像が生成されない


[ 原因 ]
SDXL+異なる世代のVAE、もしくはSD1.x、SD2.x+SDXL VAEで生成している。

[ 対処方法 ]
正しい組み合わせのVAEを使用する。

[ 解説 ]
基本的に、VAEは同一世代のCheckpointを利用しなければなりません。
VAEの学習に使用されるものが、各世代のモデルで行われている為、VAE Decoding時に正しく復号化されません。
故に、生成画像が乱れて出力されます。



4. RuntimeError: The size of tensor a (2048) ~と表示される


 RuntimeError: The size of tensor a (2048) must match the size of tensor b (768) at non-singleton dimension 1

[ 原因 ]
使用しようとしているCheckpointと、異なる世代のLoRA/LyCORIS等を使用している。

[ 対処方法 ]
プロンプトから記述を削除するか、正しい組み合わせのものを使用する。

[ 解説 ]
エラー内容にある通り、学習ベースが異なるLoRAなどを使用しようとすると、テンソルサイズが異なる関係で生成過程にて処理エラーとなります。



5. プロンプトが正しく効かない、生成画像がおかしい


[ 原因 ]
Checkpoint破損の可能性あり。(修復可能)

[ 対処方法 ]
Model Toolkitfix_position_ids.pyを利用してCheckpoint修復を試みる。
詳細な記事はまゆひらさんのnoteへ。

[ 解説 ]
この不具合の特徴は、テンソルのズレが見られることです。
それにより、CLIP処理も期待値通りに行われず、プロンプトが言うことを聞いてくれなかったりすることが目立ってきます。
上記のまゆひらさんの記事で、事細かに説明されているので、詳細はそちらをご覧ください。
また、破損モデルをマージすると不具合状態が引き継がれてしまう為、注意が必要です。



6. エラーは出ないのに画像が生成されない


[ 原因 ]
Checkpoint破損の可能性あり。(不可逆破損)

[ 対処方法 ]
別のCheckpointを使う。

[ 解説 ]
この不具合の特徴は、項目5とは違い、Model Toolkitfix_position_ids.pyを利用して破損をチェックしても判別・修復ができないことです。
主に、マージ出力されたモデルを使用しようとした際に多く発生します。
特定原因はこれと言ってありませんが、モデルマージ中にキャッシュが何かしらの理由でクリアされてしまい、モデルマージ中に正常完了していない等、モデルキャッシュの取り扱いに不備があった際に発生しているようです。
この症状は不可逆的であり、修復を試みましたが修復はできませんでした。
この破損モデルを再度マージすると不具合状態が引き継がれてしまう為、注意が必要です。



7. NansException: A tensor with all NaNs was produced in Unet~と表示される


NansException: A tensor with all NaNs was produced in Unet. 
This could be either because there's not enough precision to represent the picture, 
or because your video card does not support half type. 
Try setting the "Upcast cross attention layer to float32" option in Settings > Stable Diffusion or using 
the --no-half commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check. 

[ 原因 ]
Checkpoint以外の学習モデルをCheckpointとして読み込み、生成しようとした。
(Checkpointフォルダに誤ってLoRA等の異なる学習モデルが、配置されている可能性あり)

[ 対処方法 ]
正しくCheckpointを利用する。

[ 解説 ]
エラー内容としては、必要コンポーネントが不足している為、正常にU-Netにて処理されずにNaNs(Not a Numbers : 非数値)を出力したというものです。
LoRA等はコンポーネント構成がCheckpointと異なるので発生します。
対処方法がコマンドライン上にログ出力されていますが、そのように対処しても高確率で復旧しません。(エラーは出力されないが、真っ黒い画像が生成される不具合が発生する)



8. NansException: A tensor with all NaNs was produced in VAE~と表示される


NansException: A tensor with all NaNs was produced in VAE. 
This could be because there's not enough precision to represent the picture. 
Try adding --no-half-vae commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check. 

[ 原因 ]
VAEコンポーネントの処理不具合。

[ 対処方法 ]
webui-user.batの [ COMMANDLINE_ARGS ]部分に以下の起動オプションを入れる。

set COMMANDLINE_ARGS= --no-half-vae

[ 解説 ]
Bake VAEもしくはVAEが、VAE処理時にNaNs(Not a Numbers : 非数値)を出力したのが原因です。
発生機序はよく分かっていませんが、正常なVAEでも発生します。

よく発生するのが単精度のVAE(fp16)である場合が多く、fp16からfp32に強制的にupcastしてあげると症状が改善する可能性があります。
Checkpointとの相性が大きく、Baked VAE Checkpoint(fp32)+VAE(fp16)の時に発生しやすい印象があります。

また、Wiki等で--disable-nan-checkもセットで記述するように書かれていることがあります。
これは症状を改善する為のオプションではなく、あくまでもNaN発生時に処理を強制続行させる為のものですので根本解決にはならず、この記事では記述するようにはしておりません。
※項目7でも同様の理由です。



9. RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'と表示される


RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'

[ 原因 ]
ご使用のグラフィックカードが、単精度浮動小数点の処理に対応していない。

[ 対処方法 ]
倍精度浮動小数点の処理を強制する為、以下のオプションを [ COMMANDLINE_ARGS ]部分へ入れる。

set COMMANDLINE_ARGS= --precision full --no-half

但し、このエラーはミドルクラス以下のグラフィックボードで起こりうる問題ですので、処理能力が限られ、別の不具合が発生する可能性があります。
(上記オプション後を入れるとOutOfMemoryErrorが頻発する等)

マシンスペックを上げるのが最善策ではありますが、グラフィックボードを交換せずに対処する場合は、以下をお試しください。

set COMMANDLINE_ARGS= --precision full --no-half --lowvram

副作用として、生成時間が非常に長くなります。(数分ではなく数十分単位)
これでもOutOfMemoryErrorが頻発する場合、かつローカル環境での生成を行いたい場合は以下へ変更しましょう。

set COMMANDLINE_ARGS= --skip-torch-cuda-test --no-half --use-cpu all

こちらは、GPUからCPU処理へ変更する為、非常に処理パフォーマンスが低下します。
この設定は私的には非推奨ですので、どうしても低コストで画像生成したい場合は、クラウドGPUや画像生成サービスを利用することをお勧めします。

[ 解説 ]
ローカル環境での生成にはある程度のスペックを要します。
普段、ローカル環境で構築されている方は、ほとんどがミドルスペック以上の環境で実施されている方が多い為、このエラーは目にすることが少ないです。
新しく画像生成AIを始められる方は、ご自身のPCスペックと相談しつつ最適な案を講じてもらえればと思います。



10. AttributeError: module 'tensorflow' has no attribute 'Tensor'と表示される


AttributeError: module 'tensorflow' has no attribute 'Tensor'

[ 原因 ]
WebUIと拡張機能に互換性がない。

[ 対処方法 ]
・拡張機能を最新のものへアップデートする。
・拡張機能が最新版リリースされていなければ、WebUIをダウングレードする。
・拡張機能を全て無効化した後、1つずつ有効化していき、原因となっている拡張機能を削除する。

[ 解説 ]
WebUIがアップデートされ、インストール済みの拡張機能との互換性がない場合に発生することが多いエラーです。
WebUIの公式Githubでも同様のissueは多く報告されており、中でも拡張機能「Dynamic Prompts」が影響していることが多いようです。

Dynamic Promptsを導入していて、この事象が発生した際は、とりあえずDynamic Promptsのみ削除した状態でWebUIを起動してみてください。



11. not supported between instances of 'NoneType' and 'int'と表示される


TypeError: '' not supported between instances of 'NoneType' and 'int'

[ 原因 ]
ui-config.jsonもしくはconfig.json内にて不正な設定値(主に空白)がある。

[ 対処方法 ]
・[ Settings ] - [ Defaults ]より全設定項目をデフォルト設定にする。
・config.jsonを削除し、WebUIの[ Settings ] にて[ Apply Settings ]を押し、config.jsonを初期化・再構築する。(config.jsonは以下フォルダにあります)

./stable-diffusion-webui/config.json

[ 解説 ]
不正な値によって引き起こされてることが主な原因です。
主に、ENSD(Eta noise seed delta)で多く見られます。
ENSDの設定では、空白でも適用できてしまうので、nullが読み込まれエラーになることがあります。
このエラーは操作ミスによるエラーなので、ユーザ側で対処可能ですが、WebUIのバージョンによっては、対策・改善される可能性があります。


拡張機能のトラブル



1. ControlNetにてOSErrno: [Errno 22] Invalid argument:~が発生する


[ 原因 ]
config.jsonのファイルパスが間違っている。

[ 対処方法 ]
・control_net_model_config
・control_net_model_adapter_config
・control_net_detectedmap_dir
を含む行を探し、各行を削除した後、config.jsonを保存する。
その後、WebUIを起動しなおす。

[ 解説 ]
ControlNetに関するファイルパスが誤っている、もしくは何かしらの原因で参照できない為、このエラーが発生します。
ControlNetに関するファイルパスを削除することで、設定が再構築されます。



2. ControlNetが動作しない、FileNotFoundErrorが発生する


[ 原因 ]
Tempフォルダにgradioのフォルダがない。

[ 対処方法 ]
以下フォルダにgradioフォルダを作成する。
コマンドプロンプトでの作成が楽なので、以下コマンドをコマンドプロンプトに張り付けて実行する。

mkdir %TMP%\gradio

[ 解説 ]
Gradioパッケージのバグのようです。
WebUI公式issueにも報告があります。
こちらはバージョンを重ねれば解決する事象かもしれません。



3. Super MergerにてIndexError等のエラーが発生し、正常にX/Y/Z Plot出力できない


[ 原因 ]
原因は多岐に渡る為、全てを取り上げることはできませんが、いくつかリストアップします。

  1. Calc Modeと正しい組み合わせのMerge Modeで実行していない。

  2. X/Y/Z Plot出力時、Calc Modeに必要なAlpha及びBetaのWeightが正しく指定されていない。

  3. Selfモード時、use MBW有効+X/Y/Z Plotで動作しない組み合わせで出力しようとしている。

  4. Model Cまで必要なMerge Modeなのに、Model Cを選択していない

  5. Model Aのキャッシュがリリースされてしまっていて、読み込めない(WebUI v1.5.2以前)

  6. use MBW無効状態で、X/Y/Z Parameterにてmbw alphaやmbw betaを使おうとしている

  7. MBW使用時、階層分(Checkpointの場合は25層+Base=26項目)のWeightが正しく指定していない(24項目しかない等)

etc…

[ 対処方法 ]
主にユーザの取り扱いミスであることが多いです。
今一度、Merge ModeやCalc Mode、use MBW有効/無効等の設定を見直してみてください。

[ 解説 ]
Super Mergerは便利なツールですが、初見で説明書を読まずに使用方法の理解をするのは困難です。
しっかりとSuper Mergerの公式Githubを熟読するか、以下の記事を参考に試してみてください。



4. Super MergerにてX/Y/Z Plotを出力すると、ノイズ画像しか生成されない


[ 原因 ]
いくつか原因は考えられます。

  1. Add difference以外のMerge ModeでsmoothAdd MTを実行しようとしている。

  2. Calc Modeと正しい組み合わせのMerge Modeで実行していない。

  3. 不可逆破損モデル(生成関係のトラブル - 項目6を参照)を使用してマージしようとしている。

  4. Selfモードにて、Alpha倍率の指定が大きすぎる、もしくは小さすぎる

etc…

[ 対処方法 ]
・原因1、原因2
項目3と同様、主にユーザの取り扱いミスです。
こちらは今一度マージ設定を確認してください。

・原因3
そのモデルを使用しないことです。
破損モデルが自身が途中経過で作っているマージモデルであるならば、マージ履歴の遡及確認をして、再度同様のレシピで再マージをしてみてください。
同様に発生するようであれば、原因1、2で挙げている方法でマージしてしまい、必然的に壊れてしまったモデルの可能性があります。

・原因4
Alpha倍率の指定値が大小極端な値にしてしまうと、ノイズ画像か非常に乱れた画像になります。
経験則になりますが、Selfモードを使用する際の指定倍率は[ 0.8 - 1.2 ]までの間で指定しましょう。
その範囲外の値を指定すると、生成画像が乱れる可能性があります。

[ 解説 ]
Super Mergerの仕様で、以前はCalc Modeと正しい組み合わせのMerge Modeでないと、エラーが発生していたと思いますが、現在は一部の不正な組合せでもマージが完了してしまう事象を確認しています。
その事象に気づかず、マージを繰り返してしまうと、修正不能なモデルとなってしまうので、マージ設定は確認をしつつ行うようにしてください。


おわりに


今回は、WebUIで発生する様々なトラブルの対応についてお伝えしました!
結構、専門用語がバンバン飛び交っていて、分かりにくいかもしれませんが、対処方法だけでも試して頂ければ、復帰できるかもしれません。

困った際は、この記事を見て頂き対処して貰えればと思います!

環境を構築し直す、WebUI設定をまたやるのは面倒!という方は、参考になれば幸いです!

もしかしたら、この記事は随時更新するかもしれません。
ブックマークやお気に入り、自分のマガジンなどに入れて後で見返してみてください!


この記事が参加している募集

AIとやってみた

よろしければサポートお願いします!✨ 頂いたサポート費用は活動費(電気代や設備費用)に使わさせて頂きます!✨