本地部署 Stable Diffusion WebUI 虽然方便,但对硬件要求极高,尤其是显存。利用带 GPU 的云服务器实例,不仅能以较低成本体验强大的 AI 绘画能力,还能随时随地通过浏览器访问,灵活性大大提升。
一、部署前的准备
1.1 选择合适的云服务器
- GPU 型号:优先选择 NVIDIA 显卡,如 V100、T4、P4、3090、4090 等。显存越大越好,建议至少 8GB 起步,推荐 12GB 以上。
- 操作系统:Linux 发行版(如 Ubuntu 20.04 LTS、Debian 11)是首选,社区支持好,文档丰富。
- 网络带宽:部署初期需要下载大量模型和依赖,稳定的网络环境至关重要。
1.2 环境配置
- Python 版本:推荐使用 Python 3.10.x(如 3.10.6)。过高或过低的版本都可能与某些依赖库不兼容。
- 虚拟环境:务必使用 venv 或 conda 创建独立的虚拟环境。这可以避免依赖冲突,方便管理,是部署的'黄金法则'。
- Git 配置:确保 Git 已安装。如果在国内访问 GitHub 较慢,可以考虑配置镜像源,例如设置环境变量 HF_ENDPOINT 指向镜像站(如 https://hf-mirror.com),这能极大加速模型下载。
二、项目部署
2.1 获取项目代码
克隆仓库是最直接的方式:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
若遇到网络问题,也可以手动下载 zip 压缩包上传。代码结构大致如下:根目录下包含 webui.sh 启动脚本和 launch.py 程序入口,启动时会按照 modules/launch_utils.py 的流程配置环境。
2.2 性能优化
启动前,建议安装 libgoogle-perftools4 和 libtcmalloc-minimal4 库,可以优化程序性能:
sudo apt-get install libgoogle-perftools4 libtcmalloc-minimal4 -y
2.3 启动项目
HF_ENDPOINT=https://hf-mirror.com ./webui.sh --port 7860 --listen --enable-insecure-extension-access --xformers
这里解释一下几个关键参数的作用:
- HF_ENDPOINT:设置中文镜像,等同于先 export 再启动。作用是将所有从 Hugging Face 下载模型、配置文件等的请求重定向到镜像站,对国内用户非常有用,可解决官网访问慢或无法下载的问题。
- --port 7860:指定 WebUI 监听的端口号,默认是 7860,也可改为其他端口(如 8080)。
- --listen:让 WebUI 服务器监听所有网络接口(而不仅仅是 127.0.0.1)。默认情况下只允许本地访问,加上该参数后,局域网内其他设备甚至公网(需暴露端口)也能访问。
- --enable-insecure-extension-access:允许扩展访问本地文件系统或执行不安全操作。一些社区扩展(如模型管理器、LoRA 加载器)需要更高权限才能运行。默认出于安全考虑是禁用的,仅在信任所安装的扩展时才建议启用。
- --xformers:启用 xFormers 优化。这是一组用于加速 Transformer 模型的高效注意力操作实现。启用后通常可以降低显存占用并提升生成速度,但仅支持 NVIDIA GPU(CUDA)。
2.4 部署说明
项目启动后,目录中会多出一个 stable-diffusion-webui 文件夹,这是存放环境依赖的目录,与项目本身的目录有区别。如果使用 conda 而非 venv 创建虚拟环境,需要将 webui.sh 文件中的 use_venv 变量值从 1 改为 0。
三、避坑指南
部署过程中可能会遇到不少常见问题,以下是经验总结:
3.1 网络问题导致环境配置失败
这种情况通常是因为云主机无法联网、带宽不足,或者下载的包需要外网代理。实在不行也可以尝试离线安装。
3.2 磁盘空间不足
部分包占用空间较大,如果磁盘不够用,可以考虑扩充磁盘空间。
3.3 用户权限问题
webui.sh 文件中默认设置不可使用 root 用户启动项目,这是为了安全考虑。最直接的解决方案是创建一个新用户来启动,或者将 can_run_as_root=0 改成 1,或者注释掉相关脚本块。
3.4 依赖 CLIP 包和 PyTorch 安装失败
对于 CLIP 包和 PyTorch 安装失败的问题,可能是 GitHub 下载时网络太慢。可以在 modules/launch_utils.py 中的所有 https://github.com/xxx.git 前面添加 https://mirror.ghproxy.com/。
3.5 依赖 stablediffusion 安装失败
如果遇到 fatal: repository 'https://github.com/Stability-AI/stablediffusion.git/' not found 错误,说明原项目在 GitHub 上已不存在。可以在 modules/launch_utils.py 中将链接替换为 https://github.com/CompVis/stable-diffusion.git 或 https://github.com/w-e-w/stablediffusion.git。若仍然有问题,可以尝试在 stable-diffusion-webui/repositories 目录下手动克隆 CompVis/stable-diffusion 仓库:
git clone --config core.filemode=false https://github.com/CompVis/stable-diffusion.git ./stable-diffusion-webui/repositories/stable-diffusion-stability-ai
同理,对于 generative-models 下载报错,也可以手动下载:
git clone --config core.filemode=false https://github.com/Stability-AI/generative-models.git repositories/generative-models
--config core.filemode=false是 Git 克隆命令中的一个配置选项,在 Unix/Linux 系统中忽略文件权限变化,只关注文件内容,避免权限问题导致的克隆失败。
3.6 Git 访问认证
从 GitHub 克隆稳定扩散稳定性 AI 仓库时,可能需要 Git 访问认证。登录的是 GitHub 用户名,但密码要用个人访问令牌(Personal Access Token, PAT)而不是账号密码。生成令牌后,务必复制它,当 Git 提示输入 Password 时,粘贴生成的 PAT 即可。
若还有权限问题,可以使用启动指令加 --skip-prepare-environment 的方式解决。
3.7 NumPy 版本兼容性问题
错误信息:A module that was compiled using NumPy 1.x cannot be run in NumPy 2.2.6
原因:安装的 PyTorch 等包是基于 NumPy 1.x 编译的,但当前环境使用 NumPy 2.x。
解决方案:
pip install "numpy<2"
3.8 缺失依赖包 pytorch_lightning、gradio
项目可能缺失 pytorch_lightning 和 gradio 依赖。
解决方案:
pip install pytorch_lightning
pip install gradio
如果使用 HF_ENDPOINT=https://hf-mirror.com ./webui.sh --port 7860 --listen --enable-insecure-extension-access --xformers --skip-prepare-environment 指令来启动项目,--skip-prepare-environment 使得跳过依赖的安装,可以再用 pip install -r requirements_versions.txt 指令将缺失的依赖补上,其中就包含 pytorch_lightning、gradio 包。
3.9 Git 拉取依赖失败
如更换链接后仍 git 拉取依赖项目失败,以及 generative-models、BLIP 依赖项目 git 拉取失败,可以考虑手动拉取,在 webui 项目路径下执行:
git clone --config core.filemode=false https://github.com/CompVis/stable-diffusion.git ./repositories/stable-diffusion-stability-ai
git clone --config core.filemode=false https://github.com/Stability-AI/generative-models.git ./repositories/generative-models
git clone --config core.filemode=false https://github.com/crowsonkb/k-diffusion.git ./repositories/k-diffusion
git clone --config core.filemode=false https://github.com/salesforce/BLIP.git ./repositories/BLIP


