在 Windows 上安装 Stable Diffusion WebUI

内容纲要

前情提要

介绍

Stable Diffusion 是一种生成人工智能(generative AI)模型,可根据文本和图像提示生成独特的真实感图像。它最大的特点就是开源免费以及允许商用

Stable Diffusion WebUI 是一个由 AUTOMATIC1111 开发基于浏览器界面(Gradio 库)的 Stable Diffusion 使用工具。它提供了一个直观的用户界面,可以方便地输入文本描述、调整参数并生成图像,是使用 Stable Diffusion 最友好的方式之一。

使用环境

使用 Stable Diffusion 目前最友好的是 NVIDIA 的显卡,AMD 和 Intel 的显卡相比 NVIDIA 在性能上都要逊色不少,虽然目前开源社区也在做着各种努力,但如果你使用的 NVIDIA 的 RTX 30 甚至是 40 系列并且搭载 16GB 显存(低于 16GB 也可以,但可能在一些重载的时候显存不够用导致错误)的显卡,那么可以获得非常良好的使用体验

网络问题

💡 如果你身处中国大陆的网络环境,那么在安装 Stable Diffusion 时有极大可能遇上网络问题,建议你使用例如 Clash for Windows 或 Clash Verge 这样的网络工具并开启「Tun 模式」即可轻松的一键解决网络问题,避免了在使用 Python 和 Git 等工具时需要专门对其进行代理设置的步骤。

注意,许多类似网络工具的所谓「全局模式」不是真「全局」,所以不要觉得在使用其他工具无法解决网络问题时从老掉牙的「PAC 模式」切换到所谓的「全局模式」就可以解决问题...

如果不愿意或没有办法解决中国大陆的特色网络问题,个人建议使用一键安装包,它已经做好了整合。

方法一:使用懒人一键整合安装包

如果不是开发者或者有相关经验,安装 Stable Diffusion WebUI 及其所需要的依赖(Python、Git、CUAD)对你来说可能是痛苦的,而一些「赛博菩萨」已经做好了一键安装包,安装后即可使用。

比如由秋葉aaaki制作的整合安装包是其中最为出名的,个人刚接触 Stable Diffusion 时就使用过且体验不错,你可以在其 QQ 频道内获取下载地址、更新等信息,以下是秋葉aaaki的相关链接:

秋葉aaaki制作的一键整合安装包官方下载地址:百度网盘

下载后解压并运行文件夹内的 A绘世启动器.exe 即可启动启动器,一般来说第一次启动如果你的系统里没有相关运行环境会提示安装 .NET 6,点击「Yes」会自动跳转到下载地址,也可以手动下载安装:https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0

在 Windows 上安装 Stable Diffusion WebUI

点击「一键启动」即可打开 Stable Diffusion WebUI,也可以在启动前先进行一些相关设置,这里就不过多赘述了

在 Windows 上安装 Stable Diffusion WebUI

方法二:在 Windows 上手动安装

安装 Stable Diffusion WebUI 之前需要先安装一些依赖软件:

  • Python
  • Git
  • CUDA

Python

通过浏览 Stable Diffusion WebUI 的项目说明,截止本文发布时可以看到说明里有一句:

Install Python 3.10.6 (Newer version of Python does not support torch)

所以仅目前来说所安装的 Python 版本是有要求的,所以在 Python 官网 https://www.python.org/downloads/ 下载 Python 安装包时需要下载对应版本,例如当前所要求的 3.10.6 的官方下载地址:https://www.python.org/downloads/release/python-3106/

在页面底部的「Files」选择根据系统选择,如「Windows installer (64-bit)」

在 Windows 上安装 Stable Diffusion WebUI

另外在安装时勾选上「Add Python to PATH」,安装完成后在「终端」里运行命令:

python -V

能看到 Python 3.10.6 表示安装成功

Git

Git 安装同样前往 Git 官网 https://www.git-scm.com/downloads 下载即可,Git 的安装没有什么特别需要注意的地方,一路下一步即可

同样的安装后在「终端」里运行命令:

git -v
git version 2.43.0.windows.1

能看到版本号表示安装成功

CUDA

在安装 CUDA 之前建议先到 NVIDIA 官网更新显卡驱动:https://www.nvidia.cn/Download/index.aspx?lang=cn

有的显卡可能并不支持最新的 CUDA 版本,所以先在终端使用命令:

nvidia-smi
NVIDIA-SMI 551.23    Driver Version: 551.23    CUDA Version: 12.4

返回的结果查看最上面的 CUDA Version 就表示你的显卡所能支持的最新 CUDA,即这个数字以内的版本都是支持。

然后在 NVIDIA 的 CUDA 官网的历史版本列表下载对应版本:https://developer.nvidia.com/cuda-toolkit-archive

Stable Diffusion WebUI

在你打算放置 Stable Diffusion WebUI 的地方按住 shift 键然后点击鼠标右键,选择「在终端中打开」,注意相关路径或放置的文件夹不要有中文或其他特殊字符

然后输入命令:

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
Cloning into 'stable-diffusion-webui'...
remote: Enumerating objects: 31137, done.
remote: Counting objects: 100% (140/140), done.
remote: Compressing objects: 100% (91/91), done.
remote: Total 31137 (delta 68), reused 95 (delta 38), pack-reused 30997
Receiving objects: 100% (31137/31137), 33.64 MiB | 12.95 MiB/s, done.
Resolving deltas: 100% (21809/21809), done.

看到如上的 done. 就成功下载了,进入 stable-diffusion-webui 找到并双击运行 webui-user.bat 就开始进一步安装和启动。

如果顺利安装和启动将会在终端内看到 Running on local URL: http://127.0.0.1:7860,程序也会自动打开浏览器并访问改地址,这时候你就可以看到 Stable Diffusion WebUI 了:
在 Windows 上安装 Stable Diffusion WebUI

这是最原始的界面,一些整合包整合了很多插件所以如果你先接触的整合包应该会感受到两者的不同

注意,保持着终端程序窗口不要关闭,因为浏览器里显示的只是个界面,Stable Diffusion 是在后台运行着的,关闭了终端 Stable Diffusion 也就随之关闭了。

同样的,在之后每次使用时也是双击运行 webui-user.bat 即可打开。

方法三:在 Windows 上的 WSL 内手动安装

WSL 及 Linux 发行版

首先打开「终端」

在较新的 Windows 11 中,「终端」已经内置在系统里了,建议你保持系统的更新,如果你的系统在较老的版本可以自行安装:Windows Terminal

wsl --install
正在安装: 虚拟机平台
已安装 虚拟机平台。
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。
正在安装: Ubuntu
已安装 Ubuntu。
请求的操作成功。直到重新启动系统前更改将不会生效。

使用如上命令将会开始安装 WSL 及 Ubuntu,如果你想要安装其他发行版也可以使用命令 wsl --list --online 查看可选发行版,然后使用选项 --distribution 指定安装,此处仍然建议安装 Ubuntu

看到操作成功的提示后重启电脑,然后会看到 Enter new UNIX username: 的提示,这是要创建一个非特权的用户,输入你想要的用户名即可:

Ubuntu 已安装。
正在启动 Ubuntu...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:

然后看到在 New password 输入创建的用户名的密码,看到 Installation successful! 就表示安装完成并进入到 Ubuntu,日后需要进入到 Ubuntu 也是通过「终端」新建标签页的时候选择「Ubuntu」即可进入

到这里安装 WSL 和 Linux 发行版就完成了,建议安装之后的必要依赖:

sudo apt update
sudo apt install wget git libgl1 libglib2.0-0

Miniconda

为了方便管理 Python3 版本和环境,此处使用 Miniconda:

# 确保位于主目录
cd ~

# 下载 Miniconda 官方安装脚本
sudo wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 赋予安装脚本运行权限
sudo chmod +x Miniconda3-latest-Linux-x86_64.sh

# 运行安装脚本
sudo ./Miniconda3-latest-Linux-x86_64.sh

运行安装脚本后会有一些提示:

  • 在看到 Please, press ENTER to continue 的时候按回车键继续并阅读使用协议,按空格键快速阅读协议;
  • 在里看到 Do you accept the license terms? [yes|no] 的时候手动输入 yes 同意协议并继续;
  • 在看到 Miniconda3 will now be installed into this location: /root/miniconda3 的时候,表示默认安装到 /root/miniconda3,这里建议指定一个目录,手动输入如 /opt/miniconda3
  • 在看到 You can undo this by running conda init --reverse $SHELL? [yes|no] 表示是否自动配置 Shell 文件来自动初始化 Miniconda,建议输入 yes 继续;

默认情况下它应用的是 root 用户的 Shell 配置文件 .bashrc,如果你和我一样是使用的非特权用户,那么还需要使用命令让其自动配置非特权用户的 .bashrc 配置文件:

# 修改成你的 miniconda 的安装路径,如默认安装的 /root/miniconda3/bin/conda
/opt/miniconda3/bin/conda init bash
# 应用修改
source ~/.bashrc

如果你的 Shell 是 zsh 则将如上命令的 bash 改成 zsh

一般来说这样就安装完成了,使用命令 conda -V 就可以看到版本号,如果还不行可尝试重启系统

CUDA

现在不用在 WSL 里特别安装 CUDA,只要你在 Windows 宿主机上安装就可以了,和「方法二」提到的一样,在安装 CUDA 之前建议先到 NVIDIA 官网更新显卡驱动:https://www.nvidia.cn/Download/index.aspx?lang=cn

有的显卡可能并不支持最新的 CUDA 版本,所以先在终端使用命令:

nvidia-smi
NVIDIA-SMI 551.23    Driver Version: 551.23    CUDA Version: 12.4

返回的结果查看最上面的 CUDA Version 就表示你的显卡所能支持的最新 CUDA,即这个数字以内的版本都是支持。

然后在 NVIDIA 的 CUDA 官网的历史版本列表下载对应版本:https://developer.nvidia.com/cuda-toolkit-archive

在安装完成后在 Ubuntu 内使用命令 nvidia-smi,如果能看到和 Windows 上的「终端」使用相同命令返回的结果一样即表示可用

Stable Diffusion WebUI

在「终端」里新建一个窗口,在可选项里选择刚才安装好的「Ubuntu」然后使用命令:

# 确保位于主目录
cd ~
# 克隆 Stable Diffusion WebUI 仓库
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
# 进入 SD WebUI 目录
cd stable-diffusion-webui/

# 创建一个 Python 环境
# 名称及 Python 版本由目录内的 environment-wsl2.yaml 配置
conda env create -f environment-wsl2.yaml

# 启动这个 Python 环境
# 根据 environment-wsl2.yaml 文件内容,这个环境名为
conda activate automatic

# 克隆用于 Stable Diffusion 和(可选)CodeFormer 的存储库
mkdir repositories
git clone https://github.com/CompVis/stable-diffusion.git repositories/stable-diffusion
git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformers
git clone https://github.com/sczhou/CodeFormer.git repositories/CodeFormer
git clone https://github.com/salesforce/BLIP.git repositories/BLIP

# 安装依赖
pip install transformers==4.19.2 diffusers invisible-watermark --prefer-binary
pip install git+https://github.com/crowsonkb/k-diffusion.git --prefer-binary
pip install git+https://github.com/TencentARC/GFPGAN.git --prefer-binary
pip install -r repositories/CodeFormer/requirements.txt --prefer-binary
pip install -r requirements.txt --prefer-binary
pip install -U numpy --prefer-binary

# 启动 Stable Diffusion WebUI
python launch.py

注意,上述的「克隆存储库」和「安装依赖」的步骤不建议照搬,建议参照官方文档中的 Manual Installation 步骤中的 clone repositories for Stable Diffusion and (optionally) CodeFormerinstall requirements of Stable Diffusion,以确保安装的是官方最新要求的依赖

如果遇到错误 ImportError: libGL.so.1: cannot open shared object file: No such file or directory 则表示你之前漏掉了安装必要依赖,使用命令安装:

sudo apt install libgl1 libglib2.0-0

如果看到提示 Running on local URL: http://127.0.0.1:7860 基本就运行成功了,在浏览器打开网址 http://127.0.0.1:7860 即可看到 Stable Diffusion WebUI,注意不要关闭「终端」窗口,Stable Diffusion 的运行还是需要它的

日后启动 Stable Diffusion WebUI 就不用向之前这样麻烦了,使用以下命令即可:

cd ~/stable-diffusion-webui
conda activate automatic
python launch.py