在服务器上部署 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+):