報錯信息
X:\Stable-Diffusion-WebUI\system\python\lib\site-packages\torch\cuda\__init__.py:215: UserWarning:
NVIDIA GeForce RTX 5060 Ti with CUDA capability sm_120 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_50 sm_60 sm_61 sm_70 sm_75 sm_80 sm_86 sm_90.
If you want to use the NVIDIA GeForce RTX 5060 Ti GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/
從錯誤信息可知,PyTorch 當前版本不支持 NVIDIA GeForce RTX 5060 Ti 的 CUDA 計算能力 sm_120,這是導致 Stable Diffusion WEBUI 無法正常加載模型的關鍵所在。下面為你詳細分析并提供解決辦法:
問題分析
PyTorch 版本和 GPU 硬件之間存在兼容性問題。RTX 5060 Ti 的 CUDA 計算能力為 sm_120,然而當前安裝的 PyTorch 版本僅僅支持到 sm_90(對應于 NVIDIA 的 Ada Lovelace 架構)。這表明你需要安裝一個支持更新 GPU 架構的 PyTorch 版本。
解決辦法
1. 安裝支持 sm_120 的 PyTorch 版本
你要安裝 nightly 版本的 PyTorch,該版本對最新的 GPU 架構提供支持。通過以下命令卸載現有的 PyTorch,然后安裝 nightly 版本:
# 卸載當前的 PyTorch
pip uninstall torch torchvision torchaudio# 安裝支持 CUDA 12.1 的 PyTorch nightly 版本
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121
2. 驗證 PyTorch 是否能夠識別 GPU
安裝完成后,你可以通過運行以下 Python 代碼來驗證 PyTorch 是否能夠正確識別你的 GPU:
import torch
print(torch.cuda.is_available()) # 應該輸出 True
print(torch.cuda.get_device_name(0)) # 應該輸出 "NVIDIA GeForce RTX 5060 Ti"
print(torch.version.cuda) # 顯示 CUDA 版本
3. 其他需要注意的要點
- CUDA 工具包:要保證你的系統已經安裝了 CUDA 12.1 或更高版本。你可以從 NVIDIA 官方網站下載并安裝。
- Stable Diffusion WEBUI 設置:在啟動 Stable Diffusion WEBUI 時,添加
--precision full --no-half
參數,以此避免在模型加載過程中出現精度問題。 - 虛擬環境:建議在全新的虛擬環境中進行安裝,這樣可以防止舊版本依賴項造成干擾。
操作步驟
- 打開命令提示符,進入 Stable Diffusion WEBUI 所在的目錄。
- 激活虛擬環境(如果有虛擬環境的話)。
- 按照上述命令卸載并重新安裝 PyTorch。
- 安裝完成后,嘗試再次啟動 Stable Diffusion WEBUI。
如果在安裝過程中遇到網絡問題,你可以考慮使用國內的鏡像源,例如:
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121 -i https://pypi.tuna.tsinghua.edu.cn/simple
后續檢查
如果上述方法仍然無法解決問題,你可以嘗試以下操作:
- 檢查 Stable Diffusion WEBUI 是否有更新版本,更新到最新版本可能會解決兼容性問題。
- 查看 GitHub 上相關的 issue,了解其他用戶是否也遇到了類似問題以及他們的解決方法。
- 考慮暫時使用 CPU 模式(添加
--skip-torch-cuda-test --use-cpu all
參數)來驗證模型是否能夠正常工作,不過這種方式的運行速度會比較慢。