新闻中心

联系我们

了解更多详细信息,请致电

020-38815864

地址:广州市天河区燕岭路120号823
电话:020-38815864
邮箱:cs@cs003.vip

服务器部署 Stable Diffusion:5 个常见报错(含显存不足)解决指南


发布时间:2025-08-28


在服务器上部署 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 为宜);​
  • 启用显存优化参数:启动命令中添加以下参数(二选一,根据服务器显卡适配):​
​
# 1. 轻量级优化(适合6-8GiB显存)​
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 的适配表(推荐组合):​
​
驱动支持 CUDA 版本​
推荐 PyTorch 版本​
安装命令​
11.6-12.2​
2.0.1​
pip3 install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118​
≤11.5​
1.13.1​
pip3 install torch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 --index-url https://download.pytorch.org/whl/cu116​
​
(2)重装驱动(若版本不匹配)​
  • 卸载旧驱动:​
​
sudo apt-get purge nvidia-*​
​
  • 安装对应版本驱动:​
​
sudo ubuntu-drivers autoinstall # 自动安装适配显卡的推荐驱动​
sudo reboot # 重启服务器生效​
​
三、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根目录创建环境​
python3.10 -m venv venv​
# 2. 激活环境(Ubuntu)​
source venv/bin/activate​
# 激活环境(Windows Server)​
venv\Scripts\activate​
​
(2)在虚拟环境中重新安装依赖​
  • 用官方requirements.txt安装(避免版本遗漏):​
​
# 进入Stable Diffusion根目录​
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​
# 若xformers冲突,卸载后重装适配版本​
pip uninstall xformers​
pip install xformers==0.0.20 # 适配PyTorch 2.0.1​
​
(2)修复依赖关系​
  • 使用pip-check检查冲突包:​
​
pip install pip-check​
pip-check # 查看哪些包存在版本冲突​
​
  • 根据提示卸载冲突包并重新安装:​
​
pip uninstall [冲突包名]​
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)修正模型路径与格式​
  • 将模型放入正确目录(以 WebUI 为例):​
  • 主模型(ckpt/safetensors)→ models/Stable-diffusion/​
  • LoRA 模型 → models/Lora/​
  • VAE 模型 → models/VAE/​
  • 确保路径无中文 / 特殊字符,示例:​
​
# 错误路径:/home/user/模型/SD1.5.ckpt​
# 正确路径:/home/user/models/SD1.5.ckpt​
​
(3)适配模型版本​
  • 若使用较新模型(如 SDXL),需确保 Stable Diffusion 已升级到支持版本(如 WebUI 需更新至 1.5+):​
​
# 进入WebUI根目录,拉取最新代码​
git pull​
# 重新启动并加载模型​
python launch.py​
​


返回上一页
  • 返回顶部
  • 020-38815864
  • 微信咨询
    关注我们