在服務器上部署 Stable Diffusion 時,因硬件配置、環境依賴、參數設置等差異,常出現各類報錯。本文整理 5 個高頻問題,從現象分析到實操解決,幫你快速排查故障,順利啟動模型。?
一、顯存不足(最常見):RuntimeError: CUDA out of memory?
1. 報錯現象?
啟動模型生成圖片時,終端提示 “CUDA out of memory. Tried to allocate XX MiB (GPU XX; XX GiB total capacity; XX GiB already allocated; XX MiB free; XX GiB reserved in total by PyTorch)”,生成任務直接中斷。?
2. 核心原因?
- 模型本身占用顯存高(如 SD 1.5 基礎模型加載后約占 2-4GiB,大模型 / LoRA 疊加后更高);?
- 生成參數設置不合理(如分辨率過高、批次數量過大);?
3. 解決步驟?
(1)優先優化參數(無需硬件升級)?
- 降低生成分辨率:將默認的 512×512/768×768 降至 384×384,或啟用 “分塊生成”(如 WebUI 中設置--xformers參數,支持低顯存下高分辨率生成);?
- 減少批次數量:在配置文件或 WebUI 中,將 “Batch Size” 設為 1,“Batch Count” 根據顯存調整(2-4 為宜);?
- 啟用顯存優化參數:啟動命令中添加以下參數(二選一,根據服務器顯卡適配):?
?python launch.py --medvram --opt-split-attention?
# 2. 深度優化(適合4-6GiB顯存,可能犧牲少量速度)?
python launch.py --lowvram --opt-split-attention-v1?
?(2)清理殘留顯存占用?
?nvidia-smi # 找到占用顯存的Python/PyTorch進程,記錄PID?
??kill -9 [PID] # 替換[PID]為實際進程號,如kill -9 12345?
?(3)硬件 / 驅動輔助優化?
- 若服務器支持多卡,啟用多卡分布式推理(需修改配置文件,示例:--device-id 0,1指定使用 0、1 號顯卡);?
- 升級 NVIDIA 驅動至 515 + 版本(適配 PyTorch 2.0+,減少顯存浪費):?
?sudo apt-get install nvidia-driver-535 # Ubuntu系統示例,根據顯卡型號選擇驅動版本?
?二、驅動版本不兼容:CUDA error: no kernel image is available for execution on the device?
1. 報錯現象?
加載模型時提示 “CUDA error: no kernel image is available for execution on the device”,或啟動后直接提示 “PyTorch not compiled with CUDA enabled”。?
2. 核心原因?
- NVIDIA 驅動版本與 Stable Diffusion 依賴的 PyTorch/CUDA 版本不匹配(如驅動支持 CUDA 11.6,但 PyTorch 安裝的是 CUDA 12.1 版本);?
3. 解決步驟?
(1)確認版本匹配關系?
先查看服務器顯卡支持的最高 CUDA 版本:?
?nvidia-smi # 右上角顯示“CUDA Version: XX.X”,如12.2?
?再對照 PyTorch 與 CUDA 的適配表(推薦組合):?
(2)重裝驅動(若版本不匹配)?
?sudo apt-get purge nvidia-*?
??sudo ubuntu-drivers autoinstall # 自動安裝適配顯卡的推薦驅動?
?三、Python 環境沖突:ModuleNotFoundError: No module named 'xxx'?
1. 報錯現象?
啟動時提示缺失模塊,如 “ModuleNotFoundError: No module named 'diffusers'”“No module named 'transformers'”,即使已執行pip install仍報錯。?
2. 核心原因?
- 服務器存在多個 Python 版本(如 Python 3.8/3.10),pip安裝的依賴包被寫入非當前使用的 Python 環境;?
3. 解決步驟?
(1)統一 Python 版本并創建虛擬環境?
- 安裝指定 Python 版本(推薦 3.10,兼容性最佳):?
?sudo apt-get install python3.10 python3.10-venv python3.10-pip?
??# 1. 在Stable Diffusion根目錄創建環境?
source venv/bin/activate?
?(2)在虛擬環境中重新安裝依賴?
- 用官方requirements.txt安裝(避免版本遺漏):?
?cd /path/to/stable-diffusion-webui?
# 安裝依賴(添加--no-cache-dir避免緩存沖突)?
pip install --no-cache-dir -r requirements.txt?
??pip install diffusers==0.21.4 transformers==4.30.2 # 示例版本,根據報錯提示調整?
?四、依賴包版本不兼容:AttributeError: module 'xxx' has no attribute 'yyy'?
1. 報錯現象?
加載模型或生成圖片時,提示屬性不存在,如 “AttributeError: module 'torch.nn' has no attribute 'SiLU'”“AttributeError: 'UNet2DConditionModel' object has no attribute 'enable_xformers_memory_efficient_attention'”。?
2. 核心原因?
- 關鍵依賴包版本過高或過低(如diffusers版本與模型要求不匹配,xformers版本與 PyTorch 沖突);?
- 手動升級包時破壞了原有依賴關系(如pip install --upgrade torch導致其他包不兼容)。?
3. 解決步驟?
(1)回退到穩定版本?
- 查看 Stable Diffusion 官方推薦的依賴版本(以 WebUI 為例,根目錄requirements.txt標注了推薦版本);?
?# 回退diffusers和transformers(示例)?
pip install diffusers==0.21.4 transformers==4.30.2?
pip install xformers==0.0.20 # 適配PyTorch 2.0.1?
?(2)修復依賴關系?
?pip install [沖突包名]==[推薦版本]?
?五、模型文件損壞 / 路徑錯誤:OSError: Unable to open file?
1. 報錯現象?
加載模型時提示 “OSError: Unable to open file (unable to open database file)” 或 “ValueError: Could not load model [模型路徑]”,且路徑看似正確。?
2. 核心原因?
- 模型文件下載不完整(如 ckpt/safetensors 文件大小遠小于官方標注,或下載時斷連導致損壞);?
- 模型路徑包含中文 / 特殊字符(如 “模型庫 / SD1.5.ckpt”),服務器環境無法識別;?
- 模型格式不兼容(如將 LoRA 模型放入主模型目錄,或模型版本與 Stable Diffusion 版本不匹配)。?
3. 解決步驟?
(1)驗證模型完整性?
- 查看官方模型大小(如 SD 1.5 官方 ckpt 約 4.27GiB),對比本地文件:?
?ls -lh /path/to/models/Stable-diffusion/[模型文件].ckpt # 查看文件大小?
?- 若大小不符,重新下載(推薦從 Hugging Face 官方庫或國內鏡像站下載,避免斷點續傳)。?
(2)修正模型路徑與格式?
- 主模型(ckpt/safetensors)→ models/Stable-diffusion/?
?# 錯誤路徑:/home/user/模型/SD1.5.ckpt?
# 正確路徑:/home/user/models/SD1.5.ckpt?
?(3)適配模型版本?
- 若使用較新模型(如 SDXL),需確保 Stable Diffusion 已升級到支持版本(如 WebUI 需更新至 1.5+):?