## Stability Ma…
【解決済み】Stability Matrixで表示されたエラーを解消していく
結論から
DirectML版を使っていました・・・。 Stability Matrixから通常版automatic1111版SDwebUIを再インストールしたら全て解決しました・・・。 すみませんでした。
なので以下は読む価値はありませんが格闘した内容を記しておきます。 何かの役に立つ日が来るかもしれません。
警告やエラーを解決していく
WARNING: you should not skip torch test unless you want CPU to work. F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\timm\models\layers\__init__.py:48: FutureWarning: Importing from timm.models.layers is deprecated, please import via timm.layers warnings.warn(f"Importing from {__name__} is deprecated, please import via timm.layers", FutureWarning) WARNING:xformers:WARNING[XFORMERS]: xFormers can't load C++/CUDA extensions. xFormers was built for: PyTorch 2.1.2+cu121 with CUDA 1201 (you have 2.3.1+cpu) Python 3.10.11 (you have 3.10.11) Please reinstall xformers (see https://github.com/facebookresearch/xformers#installing-xformers) Memory-efficient attention, SwiGLU, sparse and more won't be available. Set XFORMERS_MORE_DETAILS=1 for more details F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\pytorch_lightning\utilities\distributed.py:258: LightningDeprecationWarning: pytorch_lightning.utilities.distributed.rank_zero_only has been deprecated in v1.8.1 and will be removed in v2.0.0. You can import it from pytorch_lightning.utilities instead. rank_zero_deprecation( Launching Web UI with arguments: --xformers --api --skip-python-version-check --gradio-allowed-path 'F:\StabilityMatrix\Data\Images' --skip-torch-cuda-test Warning: caught exception 'Torch not compiled with CUDA enabled', memory monitor disabled ONNX: version=1.20.1 provider=CUDAExecutionProvider, available=['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider'] Loading weights [303166bf7f] from F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\models\Stable-diffusion\sd\nyanMix_230303Absurd2.safetensors Running on local URL: http://127.0.0.1:7860 Creating model from config: F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\configs\v1-inference.yaml To create a public link, set share=True in launch(). creating model quickly: OSError Traceback (most recent call last): File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\huggingface_hub\utils\_http.py", line 406, in hf_raise_for_status response.raise_for_status() File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\requests\models.py", line 1024, in raise_for_status raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://huggingface.co/None/resolve/main/config.json The above exception was the direct cause of the following exception: Traceback (most recent call last): File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\transformers\utils\hub.py", line 403, in cached_file resolved_file = hf_hub_download( File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\huggingface_hub\utils\_validators.py", line 114, in _inner_fn return fn(*args, **kwargs) File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\huggingface_hub\file_download.py", line 862, in hf_hub_download return _hf_hub_download_to_cache_dir( File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\huggingface_hub\file_download.py", line 969, in _hf_hub_download_to_cache_dir _raise_on_head_call_error(head_call_error, force_download, local_files_only) File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\huggingface_hub\file_download.py", line 1484, in _raise_on_head_call_error raise head_call_error File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\huggingface_hub\file_download.py", line 1376, in _get_metadata_or_catch_error metadata = get_hf_file_metadata( File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\huggingface_hub\utils\_validators.py", line 114, in _inner_fn return fn(*args, **kwargs) File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\huggingface_hub\file_download.py", line 1296, in get_hf_file_metadata r = _request_wrapper( File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\huggingface_hub\file_download.py", line 277, in _request_wrapper response = _request_wrapper( File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\huggingface_hub\file_download.py", line 301, in _request_wrapper hf_raise_for_status(response) File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\huggingface_hub\utils\_http.py", line 454, in hf_raise_for_status raise _format(RepositoryNotFoundError, message, response) from e huggingface_hub.errors.RepositoryNotFoundError: 401 Client Error. (Request ID: Root=1-675931da-38e6dc56208b596101981e90;69a13d94-1468-4273-b740-47e1e4c89f88) Repository Not Found for url: https://huggingface.co/None/resolve/main/config.json. Please make sure you specified the correct repo_id and repo_type. If you are trying to access a private or gated repo, make sure you are authenticated. Invalid username or password. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "threading.py", line 973, in _bootstrap File "threading.py", line 1016, in _bootstrap_inner File "threading.py", line 953, in run File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\modules\initialize.py", line 149, in load_model shared.sd_model # noqa: B018 File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\modules\shared_items.py", line 190, in sd_model return modules.sd_models.model_data.get_sd_model() File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\modules\sd_models.py", line 693, in get_sd_model load_model() File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\modules\sd_models.py", line 831, in load_model sd_model = instantiate_from_config(sd_config.model, state_dict) File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\modules\sd_models.py", line 775, in instantiate_from_config return constructor(**params) File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\repositories\stable-diffusion-stability-ai\ldm\models\diffusion\ddpm.py", line 563, in __init__ self.instantiate_cond_stage(cond_stage_config) File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\repositories\stable-diffusion-stability-ai\ldm\models\diffusion\ddpm.py", line 630, in instantiate_cond_stage model = instantiate_from_config(config) File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\repositories\stable-diffusion-stability-ai\ldm\util.py", line 89, in instantiate_from_config return get_obj_from_str(config["target"])(**config.get("params", dict())) File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\repositories\stable-diffusion-stability-ai\ldm\modules\encoders\modules.py", line 104, in __init__ self.transformer = CLIPTextModel.from_pretrained(version) File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\modules\sd_disable_initialization.py", line 68, in CLIPTextModel_from_pretrained res = self.CLIPTextModel_from_pretrained(None, *model_args, config=pretrained_model_name_or_path, state_dict={}, **kwargs) File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\transformers\modeling_utils.py", line 3518, in from_pretrained resolved_config_file = cached_file( File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\venv\lib\site-packages\transformers\utils\hub.py", line 426, in cached_file raise EnvironmentError( OSError: None is not a local folder and is not a valid model identifier listed on 'https://huggingface.co/models' If this is a private repository, make sure to pass a token having permission to this repo either by logging in with huggingface-cli login or by passing token=Failed to create model quickly; will retry using slow method. Startup time: 14.1s (prepare environment: 18.9s, initialize shared: 1.1s, list SD models: 0.3s, load scripts: 0.7s, create ui: 0.8s, gradio launch: 1.0s, add APIs: 0.4s). Applying attention optimization: InvokeAI... done. Model loaded in 13.1s (load weights from disk: 1.2s, create model: 2.4s, apply weights to model: 1.1s, apply half(): 0.1s, calculate empty prompt: 8.2s).
ってなことだったのでChatGPTさんに 「警告を要約してください」と指示。
以下が回答↓
表示された警告の要約:
1.torchのテストをスキップしないように警告
Torch not compiled with CUDA enabled と表示され、CUDAが有効になっていないバージョンのPyTorchが使用されています。そのため、CUDAに依存する機能は利用できません。
2.timmのインポートに関する非推奨警告
timm.models.layers からのインポートは非推奨です。代わりに timm.layers を使用するよう指示されています。
3.xformersの非対応警告
現在の環境で xformers が正しくロードされていません。再インストールすることで、メモリ効率の良いAttentionなどの機能が有効になります。
4.pytorch_lightningの非推奨機能使用警告
rank_zero_only が非推奨になり、代わりに pytorch_lightning.utilities を使用する必要があります。
5.Hugging Faceの認証エラー
モデルのロード時に認証エラー(401)が発生しています。指定されたリポジトリが存在しないか、認証情報が不足しています。
6.モデルロードエラー
None が不正なモデル識別子として渡されています。正しいモデル名か、ローカルフォルダを指定してください。
解決方法の提案
1.CUDAが有効なPyTorchをインストール。 2.xformersの再インストール。 3.timmやpytorch_lightningの非推奨部分を修正。 4.Hugging Face CLIでログインし、必要な認証トークンを設定。 5.モデル名またはパスを正しく指定。 6.これらの対応を行うことで、エラーの解消が期待されます。
エラーの解消
そもそも前回設定したPyTorchのテストを飛ばすやつを環境変数から削除。
CUDAが有効なPyTorchをインストール。
まず最初にCUDA有効バージョンのPyTorchがインストールされているのか確認。
前回やりましたがもう一度。
Python環境にて
import torch print(torch.__version__) print(torch.cuda.is_available())
を入力。
2.5.1+cu118が使用されている。 True が返ってくるのでCUDAは使用可能。
GPUを使ってStable Diffusion Web UIを起動。
NVIDIA driver was found. Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] Version: v1.10.1-amd-17-g745b20b7 Commit hash: 745b20b7c69a1fa10ee789b3981484389ac80aef Traceback (most recent call last): File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\launch.py", line 48, inmain() File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\launch.py", line 39, in main prepare_environment() File "F:\StabilityMatrix\Data\Packages\stable-diffusion-webui-directml\modules\launch_utils.py", line 616, in prepare_environment raise RuntimeError( RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
要約すると
問題: PyTorchがGPUを使用できない環境であることが検出されました。
GPU(NVIDIAドライバ)が見つかりましたが、PyTorchがGPUを認識できないためエラーが発生しています。 エラー詳細: launch.py 内で prepare_environment を実行中に、GPUが使えないため RuntimeError が発生しました。
解決方法: コマンドライン引数に –skip-torch-cuda-test を追加すると、このチェックをスキップして実行できます。
注意: GPUを利用したい場合、以下を確認してください:
CUDAが有効なPyTorchをインストール(例: pip install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/cu118)。 GPUドライバが最新であることを確認。 torch.cuda.is_available() をPythonで実行し、CUDAが有効かを確認。
やばい、堂々巡りだ。 PyTorchがGPUを認識できないためエラーが発生しています。 とはどういうことなのか。 torch.cuda.is_available()はTrueになっているので確実に使えているはずだが一応チェック。
. PyTorchとCUDAバージョンの互換性確認
現在インストールされているPyTorchとCUDAのバージョンが互換性がない可能性があります。
確認方法:
python -c "import torch; print(torch.__version__); print(torch.version.cuda)"
その後、PyTorchの公式サイトでインストール済みのCUDAバージョンが対応しているか確認してください。 とのことなので、確認してみた。
CUDAのバージョンは
2.5.1+cu118 11.8
11.8だ。
PyTorchで利用したいCUDAバージョン ≦ CUDA ToolKitのバージョン ≦ GPUドライバーの対応CUDAバージョン という条件が成立しないと使えないことがわかった。 もし成立していないのであれば NVIDIA GeForce GTX 1080 を使っているのでそれに合わせて環境を構築し直す必要がある。
PS C:\Users\(user)> nvidia-smi Wed Dec 11 16:11:31 2024 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 566.36 Driver Version: 566.36 CUDA Version: 12.7 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA GeForce GTX 1080 WDDM | 00000000:03:00.0 On | N/A | | 27% 38C P2 33W / 180W | 712MiB / 8192MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | 0 N/A N/A 1044 C+G ...009.0_x64__8wekyb3d8bbwe\Photos.exe N/A | | 0 N/A N/A 1932 C+G C:\Windows\System32\dwm.exe N/A | | 0 N/A N/A 2132 C+G ...009.0_x64__8wekyb3d8bbwe\Photos.exe N/A | | 0 N/A N/A 4112 C+G ...n\NVIDIA app\CEF\NVIDIA Overlay.exe N/A | | 0 N/A N/A 6104 C+G ...1.0_x64__8wekyb3d8bbwe\Video.UI.exe N/A | | 0 N/A N/A 10096 C+G ...siveControlPanel\SystemSettings.exe N/A | | 0 N/A N/A 12104 C+G C:\Windows\explorer.exe N/A | | 0 N/A N/A 13216 C+G ...ejd91yc\AdobeNotificationClient.exe N/A | | 0 N/A N/A 13272 C+G ...__8wekyb3d8bbwe\Microsoft.Notes.exe N/A | | 0 N/A N/A 13476 C+G ....Search_cw5n1h2txyewy\SearchApp.exe N/A | | 0 N/A N/A 13860 C+G ...2txyewy\StartMenuExperienceHost.exe N/A | | 0 N/A N/A 16512 C+G ...CBS_cw5n1h2txyewy\TextInputHost.exe N/A | | 0 N/A N/A 18312 C+G ...n\NVIDIA app\CEF\NVIDIA Overlay.exe N/A | | 0 N/A N/A 21156 C+G ...anese Input\GoogleIMEJaRenderer.exe N/A | | 0 N/A N/A 21840 C+G ...009.0_x64__8wekyb3d8bbwe\Photos.exe N/A | | 0 N/A N/A 22208 C+G F:\StabilityMatrix\StabilityMatrix.exe N/A | | 0 N/A N/A 22932 C+G ...hotoshop CS6 (64 Bit)\Photoshop.exe N/A | | 0 N/A N/A 23312 C+G ...5n1h2txyewy\ShellExperienceHost.exe N/A | +-----------------------------------------------------------------------------------------+
CUDA Version: 12.7なので条件は満たしている。
CUDA ToolKitはそもそも必要なのか
PyTorchで利用したいCUDAバージョン ≦ CUDA ToolKitのバージョン ≦ GPUドライバーの対応CUDAバージョン という利用条件だが、 CUDA ToolKitはそもそも必要なのか?
問:CUDA ToolKitは必要ですか? ChatGPT: はい、CUDA Toolkitは通常必要です。PyTorchがGPUを使用するために、CUDA Toolkitに含まれるランタイムライブラリが必要となるからです。
CUDA Toolkitが必要な理由
1.CUDAランタイムライブラリ PyTorchがGPUを操作する際にCUDA ToolkitのcuBLASやcuDNNといったライブラリを使用します。 2.環境構築に必要なバイナリ コンパイル済みのPyTorchがこれらのライブラリを見つけられない場合、GPUが認識されないことがあります。
なるほど。それではインストールしてみよう。
・インストール手順
NVIDIAの公式サイトから対応するCUDA Toolkitをダウンロード: CUDA Toolkitダウンロードページ インストール中に以下のコンポーネントを確認して選択:
- CUDA Runtime
- cuBLAS
- cuDNN
・インストール後、PATH環境変数に以下を追加:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vXX.X\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vXX.X\libnvvp
・インストール後の確認
以下を実行し、CUDA Toolkitが正しく認識されているか確認:
nvcc --version
とのこと。
公式 https://developer.nvidia.com/cuda-toolkit からダウンロードしてインストール。
説明文に 「Double click cuda_12.6.3_561.17_windows.exe」 とあるのでおそらくCUDAのバージョンは12.6.3まで対応なのだろうか。 これなら PyTorchで利用したいCUDAバージョン(11.8) ≦ CUDA ToolKitのバージョン(12.6.3) ≦ GPUドライバーの対応CUDAバージョン(12.7)で利用条件が成り立つ。
ではインストール開始。
わかんねえな。 全部インストールしといてやるか。
パスは自動的に設定されているようだ。
これで一つは解決できたのかな?
Windows powershellから
nvcc --version
と入力してみる。 すると、
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Wed_Oct_30_01:18:48_Pacific_Daylight_Time_2024 Cuda compilation tools, release 12.6, V12.6.85 Build cuda_12.6.r12.6/compiler.35059454_0
12.6以上いけるぜみたいな文章。
ではStabilityMatrixを起動してみる。
RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
のエラー。 ええ・・・。 一旦再起動か? 再起動を試す。再起動してもダメ。
ChatGPTに相談。
「CUDA Toolkitのバージョン: release 12.6, V12.6.85 NVIDIAドライバのバージョン: 566.36 CUDA Version: 12.7 使用しているPyTorchのバージョン:2.5.1+cu118 PyTorchが認識しているCUDAのバージョン:11.8 print(torch.cuda.is_available()) True 使用しているPythonのバージョン: Python 3.10.6」
の環境でもエラーが出るよと伝えた。
ChatGPT:
提供していただいた情報に基づいて、いくつかの不一致や問題が見つかります。具体的には、CUDA Toolkitのバージョン(12.6)と、PyTorchが認識しているCUDAバージョン(11.8)に違いがあります。これがエラーの原因になっている可能性があります。
- CUDA ToolkitのバージョンとPyTorchのCUDAバージョンの不一致 CUDA Toolkitのバージョンは 12.6 ですが、PyTorchは 11.8 のCUDAバージョンを認識しています。この不一致が原因で、PyTorchがCUDAを正しく利用できない可能性があります。
- 解決方法 以下のいずれかを試してみてください。
a. PyTorchをCUDA 12.x対応にアップグレード PyTorchは、CUDA 12.xに対応するバージョンが必要です。PyTorch 2.5.1はCUDA 11.8に対応しているため、CUDA 12.6に合わせるには、PyTorchをCUDA 12.xに対応するバージョンにアップグレードする必要があります。
次のコマンドでPyTorchを最新のバージョンにアップデートできます:
bash
pip install torch==2.5.1+cu12x b. CUDA Toolkitを11.8にダウングレード もしPyTorchのバージョンを変更したくない場合は、CUDA Toolkitをバージョン11.8にダウングレードする方法もあります。これにより、PyTorchが認識するCUDAバージョンと一致させることができます。
ダウングレード手順:
CUDA Toolkit 11.8のインストーラーからインストール インストール後、nvcc –version でバージョンを確認し、11.8に切り替わっているか確認 c. PyTorchのインストールを確認 また、PyTorchが正しくインストールされているか確認するため、torch のバージョンやCUDA対応状況を再インストールまたは確認することも有効です。
bash
pip uninstall torch pip install torch==2.5.1+cu118 d. Pythonバージョンの確認 Python 3.10.6は通常問題ないですが、PyTorchやCUDAのバージョンに合わせて推奨されるPythonバージョン(例えば、Python 3.9や3.10.11)に変更することを検討しても良いかもしれません。
結論 PyTorchとCUDAのバージョン不一致が原因でエラーが発生している可能性が高いです。 PyTorchをCUDA 12.xに対応するバージョンにアップデートするか、CUDA Toolkitを11.8にダウングレードすることで解決できると思われます。 上記のいずれかの方法を試してみてください。
「CUDA Toolkitを11.8にダウングレード」 はリンクが無いし実行不可能そうなのでその他を試すことに。
CUDA 12.xにアップグレードすることに。
11.8を削除
pip uninstall torch torchvision torchaudio
12.4をインストール。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
で12.4にしてみる。
さあこれでどうだ。
早速Launch!
いやーもうダメかもわからんね。
そういや、結局のところcuDNNって入ってないんかな? 入れてみるか。
入れてみても同じエラー。 残念。次行ってみよう。
--skip-torch-cuda-test
このオプションを追加して起動。 ※解決したら追記します。
現時点でのエラー
現時点でのエラーを ChatGPTにまとめてもらった。
- Hugging Face Hubへの認証 モデルがHugging Face Hubに保存されている場合、認証トークンが必要になることがあります。トークンを取得して、ログインを試みてください。
Hugging Face にログインし、Access Tokensから新しいトークンを生成します。 次に、コマンドラインで以下を実行してログインします: bash コードをコピーする huggingface-cli login プロンプトが表示されたら、先ほど生成したトークンを入力してください。
これにより、モデルのダウンロードに必要な認証が提供されます。
- モデルの設定の確認 エラーが発生している部分は、CLIPTextModel.from_pretrained(None) という箇所です。Noneが設定されているため、モデルのパスが不正であることが考えられます。これを修正するためには、正しいモデルのパスを設定する必要があります。
例えば、config.yamlファイルまたは設定ファイルで、Noneの代わりに実際のモデルID(例えば、CompVis/stable-diffusion-v1-4-original)を指定する必要があります。
- モデルファイルがローカルにある場合の確認 ローカルにモデルファイルが保存されている場合、transformersの設定でモデルのパスをローカルディレクトリに設定して、インターネット接続なしでもモデルを読み込めるようにすることができます。
もしHugging Face Hubからのダウンロードではなく、ローカルに保存されたモデルを使用したい場合は、設定でそのパスを指定してください。
- xFormersの警告 xFormersに関しても警告が表示されていますが、これはCUDA関連の問題で、xFormersが利用できないことを示しています。これに関しては、もしCUDAが動作していない場合には影響がありません。まずは、認証エラーを解決して、問題が継続するかを確認してください。
次回はこのエラーごとに記事を作っていきます。
ディスカッション
コメント一覧
まだ、コメントがありません