DCAI
Loading Light/Dark Toggl

A1111 Stable Diffusion web UIのトラブルシューティング

⏱️6min read
📅 2024年7月2日
🔄 2024年7月24日
カテゴリー:📂 生成AI初級
A1111 Stable Diffusion web UIのトラブルシューティングのメイン画像
Supported by

Stable Diffusion web UI(AUTOMATIC1111版)を運用していてトラブルに遭うことは珍しくはありません。バージョンアップしたら調子が悪くなったりすることもあるでしょう。今回の記事ではそういったトラブルに遭った時の対応方法を解説していきます。基本的には公式のトラブルシューティングに沿って解説していきます。

PR
生成AI 真の勝者の商品画像
生成AI 真の勝者
🔗Amazonリンク
ASUS TUF Gaming GeForce RTX 4080 SUPER 搭載 ビデオカード 16GB GDDR6X OC Edition/TUF-RTX4080S-O16G-GAMING 国内正規代理店品の商品画像
ASUS TUF Gaming GeForce RTX 4080 SUPER 搭載 ビデオカード 16GB GDDR6X OC Edition/TUF-RTX4080S-O16G-GAMING 国内正規代理店品
🔗Amazonリンク

venvの再構築

WebUIを使っていてなにかトラブルが起こった場合、大抵はvenvの再構築で解決できるのですが、コンポーネントの再ダウンロードを行うので時間がかかります。ネット環境の整った場所で行うことをお勧めします。

venvの削除: ファイルエクスプローラーでstable-diffusion-webuiフォルダを開きます。次にフォルダ内のvenvフォルダを削除します。
venvの再構築: 削除後Stable Diffusion WebUIを起動するために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.batset 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.batCOMMANDLINE_ARGS=に以下のコマンドを追加
--reinstall-xformers --xformers
コマンドを実行: webui-user.batの編集後WebUIを起動します。起動時にxformersの再インストールが行われます。
再インストールコマンドの削除: WebUIが起動すれば再インストールが完了しています。完了後再び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.batCOMMANDLINE_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か所接続している場合があります。電源のインストールマニュアルを見直して正しく接続してみましょう。

PR
GIGABYTE NVIDIA GeForce RTX4090搭載 グラフィックボード GDDR6X 24GB【国内正規代理店】 GV-N4090AORUSX W-24GDの商品画像
GIGABYTE NVIDIA GeForce RTX4090搭載 グラフィックボード GDDR6X 24GB【国内正規代理店】 GV-N4090AORUSX W-24GD
🔗Amazonリンク
CORSAIR RM1000x PC電源ユニット 1000W 80PLUS Gold認証 フルモジュラー RTX4080シリーズ推奨電源 ATX 2021モデル CP-9020201-JP PS1123の商品画像
CORSAIR RM1000x PC電源ユニット 1000W 80PLUS Gold認証 フルモジュラー RTX4080シリーズ推奨電源 ATX 2021モデル CP-9020201-JP PS1123
🔗Amazonリンク
カテゴリー:📂 生成AI初級
Supported by