CentOS部署Stable Diffusion的优化实践
一 环境准备与基础优化
- 硬件建议:内存至少16GB(8GB可运行但易卡顿),NVIDIA显卡显存至少4GB(推荐6–8GB+),系统盘预留60–100GB以容纳模型与缓存。
- 系统更新与编译工具:执行 sudo yum update -y;安装开发工具与依赖:sudo yum groupinstall -y "Development Tools";sudo yum install -y git python3 python3-pip python3-devel gcc cmake protobuf rust。
- Python 3.10.6 编译安装(稳定且兼容性好):
cd /usr/local && wget https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tgz && tar -zxvf Python-3.10.6.tgz && cd Python-3.10.6
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --with-openssl-rpathauto
make -j$(nproc) && sudo make install
sudo ln -sfn /usr/local/python3/bin/python3.10 /usr/bin/python3 && sudo ln -sfn /usr/local/python3/bin/pip3.10 /usr/bin/pip3
pip3 install -U pip。
- 虚拟环境与权限:建议创建非 root 用户与虚拟环境,避免权限与环境污染;必要时用 sudo 仅授予安装目录权限。
二 安装与启动流程
- 获取并启动 AUTOMATIC1111 WebUI:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git && cd stable-diffusion-webui
python3 -m venv venv && source venv/bin/activate
pip install -U pip && pip install -r requirements_versions.txt
./webui.sh(首次会自动安装依赖与模型)。
三 GPU加速与关键优化
- 驱动与 CUDA/cuDNN:确保安装与显卡匹配的 NVIDIA 驱动、CUDA、cuDNN,这是 GPU 加速的前提。
- PyTorch + xformers:在虚拟环境中安装与 CUDA 版本匹配的 PyTorch,并优先安装 xformers 提升显存利用与速度:pip3 install torch torchvision torchaudio;pip3 install xformers。
- 启动参数建议:在 webui-user.sh 或环境变量中设置
- COMMANDLINE_ARGS="--xformers --opt-split-attention --skip-torch-cuda-test --no-half-vae"(按需增减)
- 多卡可设置 CUDA_VISIBLE_DEVICES=0,1;显存紧张时降低分辨率与步数。
- 显存与稳定性:优先使用 xformers;如遇到 CUDA 初始化问题,可临时加入 --skip-torch-cuda-test 跳过检测(排查完成应移除)。
四 常见问题快速排查
- Git 版本过旧(CentOS 7 常见):默认 git 1.8 可能导致后续失败,建议源码编译升级到较新版本。
- 下载慢或 Hugging Face 访问受限:为 git/pip 配置代理;必要时手动下载缺失的 tokenizer 等文件至缓存目录。
- Gradio 分享链接失败:下载 frpc 二进制(如 frpc_linux_amd64_v0.2),放置到 venv 的 site-packages/gradio 目录并赋权:chmod +x;或设置 COMMANDLINE_ARGS="--share" 使用临时公网隧道。
- 内存/显存不足:关闭无关进程、减小分辨率与 batch size;系统内存建议≥16GB。
- 权限与运行账户:避免使用 root 直接运行 WebUI,创建专用用户与目录权限更安全。
五 无图形界面与容器化替代
- 无图形界面部署要点:可直接在纯 CLI 环境执行 webui.sh,遇到 frpc 与网络问题时按上节处理;无需 X11/桌面环境。
- Docker 方式(可选):
- 安装 Docker 并启动服务;
- 拉取镜像:docker pull ederqbal/stable-diffusion-webui:latest;
- 运行容器(示例):
docker run -it --gpus all -p 8080:8080 -e NVIDIA_VISIBLE_DEVICES=all ederqbal/stable-diffusion-webui:latest /bin/bash
- 进入容器后执行 /start.sh 启动 WebUI,访问 http://<服务器IP>:8080。
该方式便于环境隔离与迁移,但对宿主机 GPU 驱动与 Docker/NVIDIA Container Toolkit 配置有要求。