Linux部署Stable Diffusion步骤
一 环境准备
- 操作系统与硬件
- 推荐:Ubuntu 20.04+/CentOS 7+,内存≥8GB(建议16GB+),SSD 存储≥200GB(模型与依赖体积较大)。
- 安装 Docker(容器化方式推荐)
- Ubuntu 示例:卸载旧版后添加 Docker 官方仓库并安装,执行验证命令确保输出包含“Hello from Docker!”。
- GPU 驱动与 CUDA(NVIDIA 显卡)
- 安装匹配版本的 NVIDIA 驱动 与 CUDA/cuDNN,后续通过 nvidia-smi 与 nvcc --version 校验。
- Python 与虚拟环境
- 建议 Python 3.10,使用 Miniconda/Anaconda 创建隔离环境(便于依赖管理)。
二 部署方式
- 方式 A Docker 快速部署(新手友好)
- 拉取镜像:docker pull automatic1111/stable-diffusion-webui
- 运行容器(示例):
- docker run -d --gpus all -p 7860:7860 -v /path/to/models:/models automatic1111/stable-diffusion-webui
- 说明:映射默认端口 7860,挂载本地模型目录到容器内,便于多模型管理。
- 方式 B 手动安装 WebUI(可定制性强)
- 克隆代码:git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
- 创建环境:conda create -n sd_env python=3.10 && conda activate sd_env
- 启动脚本:cd stable-diffusion-webui && ./webui.sh(会自动安装依赖;可加参数如 --xformers 提升性能)
三 模型与依赖管理
- 放置模型文件
- 将 .ckpt/.safetensors 放到:stable-diffusion-webui/models/Stable-diffusion/(例如 v1-5-pruned-emaonly.safetensors)。
- 安装/升级核心依赖
- 基础:pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117(选择与 CUDA 匹配的版本)
- 扩散栈:pip install diffusers transformers accelerate ftfy safetensors
- 可选加速:pip install xformers(需与 PyTorch/CUDA 版本匹配)
- 验证环境可用性
- python - <<'PY'
import torch
print("torch:", torch.__version__, "cuda:", torch.cuda.is_available())
print("device:", torch.device("cuda:0" if torch.cuda.is_available() else "cpu"))
print("cudnn:", torch.backends.cudnn.version() if torch.cuda.is_available() else "N/A")
PY
四 启动与访问
- 启动命令与常用参数
- 基本:./webui.sh(默认端口 7860)
- 远程访问:添加 --listen
- 鉴权:添加 --gradio-auth 用户名:密码
- 换端口:添加 --port 8888
- 低显存:添加 --medvram 或 --lowvram
- 允许 root(不推荐生产):在 webui.sh 中设置 can_run_as_root=1
- 访问与防火墙
- 本机:浏览器打开 http://127.0.0.1:7860
- 远程:浏览器打开 http://服务器IP:7860
- 放行端口(Ubuntu 示例):sudo ufw allow 7860/tcp && sudo ufw reload
五 常见问题与优化
- GPU 不可用或版本不兼容
- 核对 PyTorch 与 CUDA 版本匹配;用 torch.cuda.is_available() 验证;必要时重装对应版本。
- 显存不足
- 降低分辨率(如 512×512 → 256×256),或使用 --medvram/--lowvram;必要时改用更小模型。
- 依赖缺失
- 报错 “Cannot locate TCMalloc”:sudo apt install libgoogle-perftools4 libtcmalloc-minimal4 -y
- 报错 “protobuf not found”:pip install protobuf
- 报错 “Cannot instantiate this tokenizer …”:pip install sentencepiece
- 网络访问受限(Hugging Face 下载慢/失败)
- 配置镜像源或代理;必要时手动下载模型/Tokenizer 至本地并修改引用路径。
- 以 root 运行被拒
- 临时方案:./webui.sh -f;或编辑脚本设置 can_run_as_root=1(注意安全风险)。