画像生成AIのStable DiffusionをPCローカルにインストールしたときに、webui-user.batがエラーで止まってしまうことがありました。最終的にNVIDIAのドライバをバージョンアップすることで解消したので、そのときの記録を記載します。
この記事は以下のような方に向けて書いています。ご参考になれば幸いです。
- Stable DiffusionのWebUIが起動できない方
- -skip-torch-cuda-test オプションを使いたくない人(GPU搭載PCの方)
- Stable Diffusion起動時に遭遇したエラー
- Stable DiffusionのWebUIが起動できるようになった方法
環境の説明
- OS:Windows11
- グラボ:NVIDIA GeForce RTX 3060 Ti
- Python:3.10.11
- PyTorch:2.1.2+cu121
- Stable Diffusion:v1.8.0
Stable Diffusion起動時に遭遇したエラー
Stable Diffusionをインストール後、stable-diffusionフォルダ直下にあるwebui-user.batを実行したところ、下記のようなエラーにより起動ができない状態になりました。
RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
上記のエラーについてChatGPTに質問したところ、以下のように回答がありました。
上記のエラーメッセージに基づくと、問題はStable Diffusion WebUIを起動しようとした際に、Torch(PyTorch)がGPUを使用することができないという点にあります。具体的には、RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
というエラーが発生しています。これは、PyTorchがGPUにアクセスしようとした際に問題があることを意味します。
~~
~~
エラーメッセージにある通り、問題の解決がすぐに必要な場合は、--skip-torch-cuda-test
オプションをCOMMANDLINE_ARGS
変数に追加して、TorchによるCUDAのテストをスキップすることもできます。ただし、これは問題の回避策であり、GPUを使用して高速に処理を行いたい場合は、上記の問題の解決が必要です。
回答をそのまま解釈すると、--skip-torch-cuda-test
オプションを使用すれば回避できるけど、GPUは処理に使用されなくなってしまうようでした。私のPCはグラボを積んでいるのでこれは困る。解決策を探すことになりました。
いろいろ探して試したが効果がなかった回避策
webui-user.bat/sh を編集
set COMMANDLINE_ARGS= を
set COMMANDLINE_ARGS=–use-directml –reinstall-torch に書き換えるという方法をGithubで参照して試してみましたが効果はありませんでした。
requirements.txtを編集
requirements.txtの touch を touch=directml に変更するといった回避策もどこかに載っていたのですがこれも効果ありませんでした。
NVIDIAのドライバのバージョンアップで解決
解決策を探している最中、うまく実行できているユーザの方がNVIDIAのドライバーバージョンを記載してくれていました。NVIDIA GPUではnvidia-smiコマンドをコマンドプロンプトで実行することで、ドライバのバージョンを確認することができます。
C:\Users\*****>nvidia-smi
Sat Mar 9 22:41:31 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 551.61 Driver Version: 551.61 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3060 Ti WDDM | 00000000:01:00.0 On | N/A |
| 0% 41C P8 18W / 200W | 3355MiB / 8192MiB | 3% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
先のユーザの情報と比較して、私の使っているドライババージョンがかなり古いことがわかりました(上の画像はバージョンアップ後の画像で新しいです)。そこで、Pythonの実行環境とGPUドライバ側のバージョン適合がうまく行っていないのかもしれないと思いNVIDIAのバージョンを上げたところ、正常にStable Diffusionが起動しました。
NVIDIAドライバのバージョンアップ方法
NVIDIAのドライバーのバージョンアップ方法を記載しておきます。ご参考にどうぞ。
GeForce Experienceの起動
スタートメニューや検索から GeForce Experienceを選択して起動します。GeForce Experienceが未インストールの場合は、NVIDIAの公式サイトからダウンロードしてください(ダウンロードページ)。
ログイン
起動後、ログイン画面が表示されます。アカウントをお持ちでない場合は新規作成が必要になります。これにより、ドライバの更新だけでなく、ゲームのスクリーンショット機能など、多様な機能を利用可能になります。
ドライバの更新
メイン画面の左上にある「ドライバ」を選択し、「更新プログラムの確認」をクリックします。
「更新プログラムの確認」の右側にあるリーダー部分では、GPUの利用目的を選択できます。Game Ready ドライバ(ゲーマー向け)または、Studio ドライバ(クリエイター向け)の2種類から選択しましょう。私は「Game Ready ドライバ」を選択しています。
その後、ドライバーの「ダウンロードボタン」を実行することでドライバーの更新が始まります。
まとめ
本記事ではStable Diffusionの起動がうまく行かなかったときに解決できた方法を記載しました。インストール周りでハマっている方も多いと思いますので、何かのお役に立てば幸いです。画像生成楽しみましょう!