A1111 Stable Diffusion web UIのトラブルシューティング
- venvの再構築
- コマンドライン引数
- webui-user.batを実行すると、ウィンドウがすぐに閉じてしまう。
- 低VRAM ビデオカード
- TorchがGPUを使えない
- 生成画像が黒や緑になる
- エラー「A Tensor with all NaNs was produced in the vae」
- xformers有効化直後のエラー「CUDA error: no kernel image is available for execution on the device」
- エラー「RuntimeError: Torch is not able to use GPU; add –skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check」
- エラー「NameError: name 'xformers' is not defined」
- エラー「OSError: [WinError 126] The specified module could not be found. Error loading “… c10.dll”」
- gradio 3.22にアップデート後「–share」が使えない
- 生成中にモニター画面が落ちて真っ黒になる
Stable Diffusion web UI(AUTOMATIC1111版)を運用していてトラブルに遭うことは珍しくはありません。バージョンアップしたら調子が悪くなったりすることもあるでしょう。今回の記事ではそういったトラブルに遭った時の対応方法を解説していきます。基本的には公式のトラブルシューティングに沿って解説していきます。
venvの再構築
WebUIを使っていてなにかトラブルが起こった場合、大抵はvenvの再構築で解決できるのですが、コンポーネントの再ダウンロードを行うので時間がかかります。ネット環境の整った場所で行うことをお勧めします。
stable-diffusion-webui
フォルダを開きます。次にフォルダ内のvenv
フォルダを削除します。
webui-user.bat
を実行しましょう。venvの再構築が始まるので、ブラウザが立ち上がるまでしばらく待ちましょう。
コマンドライン引数
webui-user.bat
に記述されているset COMMANDLINE_ARGS=
に書き込むことでモデルの参照先を変更したりパフォーマンス設定を変更したりできます。使用可能コマンドについて詳しくは以下のリンク(英語)を参照してください。
webui-user.batを実行すると、ウィンドウがすぐに閉じてしまう。
何かのエラーによってウィンドウが閉じてしまう場合、エラーの特定が難しくなるのでpause
コマンドをwebui-user.bat
に書き込みましょう。
書き込み後webui-user.bat
を実行しWebUIを起動すると、ウインドウが閉じなくなるのでコマンドプロンプトにエラーメッセージが出ていないか確認しましょう。
トラブルが解消したらpause
コマンドを消しておきましょう。
編集後のwebui-user.bat
の一例
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=
call webui.bat
pause
低VRAM ビデオカード
ビデオカードのVRAMが低い場合(4GB以下)メモリ不足のエラーが出ることがあります。
生成スピードを犠牲にすることになりますが、幾つかの対策を紹介します。
以下のコマンドライン引数を目的に応じてwebui-user.bat
のset COMMANDLINE_ARGS=
に書き込みましょう。
--opt-sdp-no-mem-attention
または--xformers
:GPUメモリの使用域を半分に軽減--medvram
:4GBのVRAMで~1.3倍の画像を生成したい場合--lowvram --always-batch-cond-uncond
:--medvram
を使用してメモリ不足エラーが出た場合--lowvram
:4GBのVRAMで1.3倍以上の画像を生成したい場合--disable-model-loading-ram-optimization
:4GBのVRAMでフルウェイトモデルを使用時にメモリ不足エラーが出る場合(v1.6.0以上)
TorchがGPUを使えない
この問題はよく言及されていますが、通常はWebUIの問題ではなく様々な原因があります。
- インストール時に正しい設定が出来ていない。
- WebUIの構成を変更またはアップデートの直後にエラーが出た場合。
上記の場合は始めに説明したvenvの再構築を試してみましょう。
venvの再構築でも解決しない場合は以下の方法を使って環境レポートを作り公式または専門家に問い合わせましょう。
- コマンドプロンプトを開き
stable-diffusion-webui\venv\Scripts
のディレクトリに移動しましょう。 -
下記のコマンドを実行します。
python -m torch.utils.collect_env
- 出力されたテキストをコピーして適当なテキストファイルに保存して提出しましょう。
生成画像が黒や緑になる
生成された画像が緑や黒の画面になることがあります。このエラーはモデルの過剰なウェイト等のモデルが原因で起こる場合もありますが、ハードが問題の場合、ビデオカードのGPUがハーフ精度をサポート出来ていない場合に起こるエラーです。
コマンドライン引数--upcast-sampling
と--xformers
を併用して使ってみましょう。また、コマンドライン引数 --precision full --no-half
を使用している場合、VRAMの使用量が大幅に増加するため、--medvram
が必要になることがあります。
エラー「A Tensor with all NaNs was produced in the vae」
このエラーも先ほどと同じ原因で起こるエラーです。これを検証するにはコマンドライン引数--disable-nan-check
を使いましょう。
モデルが原因の場合
モデルマージの際、embeddings.position_idsというCLIPキーが壊れることがあります。これはint64のテンソルであり、0から76までの値を持ちますが、マージを行うとこれらがfloatに変換され、エラーが発生します。例えば、AnythingV3では、76という値が75.9975になり、webuiで読み込まれるときにint64にキャストし直され、75になります。
これを修正するにはエクステンションの🔗stable-diffusion-model-toolkitを使い、AdvancedセッティングにあるFix broken CLIP position IDs オプションで、このテンソル値を修正します。この方法はモデルの出力をわずかに影響するため、デフォルトではオフとなっています。
GPUが原因の場合
NVIDIA製の16XXと10XXシリーズのビデオカードは同等の速度で実行するために--upcast-sampling
と--xformers
を使う必要があります。それでも問題が解決しない場合は--no-half-vae
を使用してVAEをfp32で実行してください。これでも解決しない場合は最も低速でVRAMを消費する方法になりますが--no-half
で実行しましょう。
xformers有効化直後のエラー「CUDA error: no kernel image is available for execution on the device」
インストールされたお使いのxformersがGPUに適応していません。OSがWindowsでPythonのバージョンが3.10そしてGPUが「Pascal」以降の方は次の方法でxformersを再インストールしましょう。
webui-user.bat
のCOMMANDLINE_ARGS=
に以下のコマンドを追加
--reinstall-xformers --xformers
webui-user.bat
の編集後WebUIを起動します。起動時にxformersの再インストールが行われます。
webui-user.bat
を編集して--reinstall-xformers
の部分を削除してください。
エラー「RuntimeError: Torch is not able to use GPU; add –skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check」
お使いのGPUがTorchに対応していませんwebui-user.bat
のCOMMANDLINE_ARGS=
に以下のコマンドを追加して、Torchをスキップしましょう。
--skip-torch-cuda-test
エラー「NameError: name 'xformers' is not defined」
Windowsの場合
お使いのPythonのバージョンが古いのでバージョンを3.10にアップデートしましょう。
Linuxの場合
xformersをご自身で構築する必要があります。もしくはxformersを無効化します。
エラー「OSError: [WinError 126] The specified module could not be found. Error loading “… c10.dll”」
Microsoft Visual C++ 再頒布可能パッケージ X64が上手くインストールされていません。Microsoft公式の🔗サポートされている最新の Visual C++ 再頒布可能パッケージのダウンロードを参考にインストールしてください。
gradio 3.22にアップデート後「–share」が使えない
Windowsディフェンダーやアンチウィルスの影響でGradioがパブリックURLの作成をブロックする事があります。警告メッセージが出てきたらそれぞれのソフトで除外項目として追加してください。
生成中にモニター画面が落ちて真っ黒になる
お使いのビデオカードにトラブルが発生しています。特に電源を多く必要とするハイスペックビデオカードをお使いの方は電源回りの見直しで解決する可能性があります。自作PCの方はビデオカードの電源の接続を再確認してください。よくある接続ミスとしてはビデオカード側の電源が2つの場合にケーブルを1本で2か所接続している場合があります。電源のインストールマニュアルを見直して正しく接続してみましょう。