之前一直在用线上的 Stable Diffusion 服务,生图速度嘛……懂的都懂,排队排到天荒地老。想着本地部署一个,毕竟咱有张 N 卡,不用白不用对吧?结果好家伙,这一部署直接给我整破防了,踩的坑比我画的二次元老婆还多。今天就把这些坑都记录下来,希望能帮到后面入坑的兄弟们。

前期准备

在开始之前,先确认一下你的环境:

  • 操作系统:Windows 10 / 11
  • 显卡:NVIDIA 显卡(GTX 1060 6G 及以上,显存至少 4GB,推荐 8GB+)
  • GitGit for Windows
  • Python强烈推荐 Python 3.10.6,不要用 3.11 或更高版本!

坑点一:Python 版本千万别选最新的!

我一开始装的 Python 3.11,好家伙,后面 pip install 的时候各种报错,torch 和 xformers 的版本对不上,折腾了半天才发现是 Python 版本的锅。AUTOMATIC1111 的 WebUI 官方推荐的就是 Python 3.10.6,别问我为什么不用最新的,问就是血泪教训。

安装 Python 的时候记得勾选 Add Python to PATH,不然后面命令行里找不到 python 命令,又是一个坑。

开始部署

第一步:克隆仓库

打开终端(PowerShell 或者 CMD 都行),找个你喜欢的目录:

1
2
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui

坑点二:git clone 超时/失败

国内网络你懂的,clone 这个仓库经常卡住或者直接超时。解决方案:

  1. 挂梯子(最直接)
  2. 用 GitHub 镜像站,比如把 github.com 换成 ghproxy.com 之类的
  3. 手动下载 ZIP 也行,但后面更新会麻烦点

第二步:下载模型

模型文件(.ckpt.safetensors 格式)需要放到指定目录:

1
stable-diffusion-webui/models/Stable-diffusion/

常用的模型可以从 Hugging Face 或者 Civitai 下载。新手推荐先下一个 SD 1.5 的基础模型试试水。

坑点三:模型放错文件夹

我一开始把模型扔根目录了,WebUI 启动之后下拉框里啥也没有,还以为模型文件坏了,重新下了两遍……记住路径是 models/Stable-diffusion/,别放错了。另外 .safetensors 格式比 .ckpt 更安全,推荐用这个。

第三步:运行 WebUI

Windows 用户直接双击 webui-user.bat 就行。第一次运行会自动创建虚拟环境、安装 PyTorch 和各种依赖,这个过程可能比较久,耐心等等。

成功的话终端会显示类似这样的信息:

1
Running on local URL: http://127.0.0.1:7860

浏览器打开这个地址就能看到 WebUI 界面了,可以开始画画了!

踩坑合集

接下来才是重头戏,我踩过的坑一个个讲。

坑一:CUDA 版本不匹配

启动的时候如果看到类似这样的报错:

1
2
NVIDIA GeForce RTX 3060 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.

说明你显卡驱动支持的 CUDA 版本和 PyTorch 编译时用的 CUDA 版本不一致。

解决方案:

  1. 先查看你的显卡支持的最高 CUDA 版本:nvidia-smi,看右上角的 CUDA Version
  2. 确保 PyTorch 的 CUDA 版本 ≤ 你显卡驱动支持的版本
  3. 如果版本对不上,可以更新显卡驱动,或者在 webui-user.bat 里指定 PyTorch 版本
点击查看:如何手动指定 PyTorch 版本

编辑 webui-user.bat,在 set COMMANDLINE_ARGS= 之前加上:

1
set TORCH_COMMAND=torch==2.0.1+cu118 torchvision==0.15.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118

这里的 cu118 表示 CUDA 11.8,根据你的实际情况调整。

坑二:显存不足(CUDA out of memory)

这个应该是最多人遇到的了。生成图片的时候突然报错:

1
RuntimeError: CUDA out of memory. Tried to allocate X MiB

好家伙,直接给你来个显存爆炸。

解决方案:

编辑 webui-user.bat,修改 COMMANDLINE_ARGS

1
set COMMANDLINE_ARGS=--medvram

如果还是不行,试试更激进的:

1
set COMMANDLINE_ARGS=--lowvram
参数 适用场景 代价
--medvram 6-8GB 显存 速度稍慢
--lowvram 4-6GB 显存 速度明显变慢
--xformers 8GB+ 显存 反而加速,减少显存占用

额外小技巧:

  • 生成图片的分辨率别开太高,512×512 是 SD 1.5 的默认尺寸,显存小的话就先用这个
  • 关掉浏览器和其他吃显存的程序
  • 如果反复报错,重启一下电脑,PyTorch 有时候不会正确释放显存

坑三:xformers 安装失败

xformers 是一个优化注意力机制的库,能显著减少显存占用并加速推理。但它的安装经常出问题,尤其是版本兼容性。

如果你看到:

1
No module 'xformers'. Proceeding without it.

别慌,没有 xformers 也能跑,只是会慢一点。

解决方案:

webui-user.bat 里加上 --xformers 参数:

1
set COMMANDLINE_ARGS=--xformers

WebUI 启动时会自动尝试安装匹配版本的 xformers。如果还是失败,可能是 Python 或 PyTorch 版本不对,回到前面检查一下。

坑中坑: xformers 对 Python 和 PyTorch 版本有严格要求。Python 3.10 + PyTorch 2.0.x 是最稳的组合。别想着用 Python 3.11 强行装,大概率翻车。

坑四:NSFW 过滤器把图全黑了

这个坑比较迷惑。有时候你生成的明明是正常图片,结果出来全是黑色的。这是 Stable Diffusion 内置的 Safety Checker(安全检查器) 在作怪,它会把被判定为 NSFW 的图片替换成纯黑图。

而且这个检测有时候挺离谱的,画个泳装都能被黑掉……

解决方案:

在 WebUI 界面的 SettingsStable Diffusion 里,找到 Safety Checker 选项,取消勾选。

或者在 webui-user.bat 的启动参数里加:

1
set COMMANDLINE_ARGS=--disable-safe-unpickle --no-half-safety

另外,如果你加载某些社区模型时报错:

1
Error verifying pickled file... The file may be malicious

这也是安全检查导致的,加上 --disable-safe-unpickle 参数就能解决。但要注意,这个参数会禁用对 .ckpt 文件的安全检查,所以请确保你下载的模型来源可靠,不要随便加载来路不明的文件。

坑五:pip install 各种超时

第一次启动时 WebUI 会自动 pip install 一大堆依赖,国内网络环境下经常超时。

解决方案:

给 pip 配个国内镜像源。在命令行执行:

1
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

或者编辑 webui-user.bat,加上代理设置:

1
set PIP_EXTRA_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
点击查看:其他可用的国内 pip 镜像
镜像源地址
清华https://pypi.tuna.tsinghua.edu.cn/simple
阿里云https://mirrors.aliyun.com/pypi/simple
豆瓣https://pypi.douban.com/simple
中科大https://pypi.mirrors.ustc.edu.cn/simple

坑六:启动报错 “Couldn’t install gfpgan”

gfpgan 是用来做面部修复的依赖,安装失败通常也是网络问题。

解决方案:

跟上面一样,先配好 pip 镜像源,然后重新运行 webui-user.bat。程序会自动重试安装。

如果还是不行,可以手动安装:

1
2
3
cd stable-diffusion-webui
.\venv\Scripts\activate
pip install gfpgan

最终的 webui-user.bat 长这样

给大家参考一下我最终用的配置:

1
2
3
4
5
6
7
8
9
@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--medvram --xformers --disable-safe-unpickle
set PIP_EXTRA_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

call webui.bat

根据你自己的显存大小调整 --medvram--lowvram

总结

整个部署过程说难不难,说简单也不简单,主要就是各种版本兼容和网络问题。总结一下关键点:

  1. Python 用 3.10.6,别用更新的版本
  2. 显存不够就加 --medvram--lowvram
  3. 国内环境记得配 pip 镜像和 Git 代理
  4. 模型放 models/Stable-diffusion/ 目录下
  5. NSFW 黑图问题在设置里关掉 Safety Checker

搞定这些之后,就可以愉快地画老婆了(bushi)。祝大家都能顺利出图!

参考资料