Stable Diffusion中文网:在AMD GPU上安装和运行Stable Diffusion WEB UI

共计 3891 个字符,预计需要花费 10 分钟才能阅读完成。

虽然 AMD GPU 目前还没有官方支持 Stable Diffusion WEB UI,但你可以安装 lshqqytiger 的 webui 分支,该分支使用 DirectML。

目前训练功能还不能正常工作,但其他特性和扩展功能,如 LoRA 和 controlnet 可以正常使用。如果遇到问题,请访问 https://github.com/lshqqytiger/stable-diffusion-webui-directml/issues 报告问题。Stable Diffusion 中文网:在 AMD GPU 上安装和运行 Stable Diffusion WEB UI

以下是在 Windows 环境下安装和运行 Stable Diffusion WEB UI 的步骤:

1. 安装 Python 3.10.6(勾选 Add to PATH)和 git。
2. 在命令提示符(cmd)或终端中粘贴以下命令:git clone https://github.com/lshqqytiger/stable-diffusion-webui-directml && cd stable-diffusion-webui-directml && git submodule init && git submodule update(你可以将程序文件夹移动到其他位置)。
3. 双击 webui-user.bat 运行程序。
4. 如果安装或运行时出现卡顿,按回车键继续。

以下是在 Linux 环境下使用 rocm 进行安装的指南(自动安装和原生运行):

自动安装
从 1 /15/23 开始,你可以直接运行 webui.sh,它会自动为你安装 pytorch 和 rocm。

输入以下命令,将 webui 安装到当前目录:
sudo apt install git python3.10-venv -y
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui && cd stable-diffusion-webui
python3.10 -m venv venv
使用以下命令安装和运行:

./webui.sh {your_arguments*}

* 对于许多 AMD GPU,你可能需要添加 –precision full –no-half 或 –upcast-sampling 参数,以避免 NaN 错误或崩溃。如果 –upcast-sampling 参数适用于你的显卡,你可以以 2 倍的速度(fp16)运行,而不是在 full 精度下运行。

详细信息
原生运行
执行以下命令:

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
python -m venv venv
source venv/bin/activate
python -m pip install –upgrade pip wheel

# 可能你不需要 ”–precision full”,但是删除 ”–no-half” 会导致驱动崩溃
TORCH_COMMAND=’pip install torch torchvision –extra-index-url https://download.pytorch.org/whl/rocm5.1.1′ python launch.py –precision full –no-half
后续运行只需要执行:

cd stable-diffusion-webui
# 可选:”git pull” 来更新仓库
source venv/bin/activate

# 可能你不需要 ”–precision full”,但是删除 ”–no-half” 会导致驱动崩溃
TORCH_COMMAND=’pip install torch torchvision –extra-index-url https://download.pytorch.org/whl/rocm5.1.1′ python launch.py –precision full –no-half
启动 WebUI 后的第一次可能会非常长,你可能会看到类似以下消息:

MIOpen(HIP): Warning [SQLiteBase] Missing system database file: gfx1030_40.kdb Performance may degrade. Please follow instructions to install: https://github.com/ROCmSoftwarePlatform/MIOpen#installing-miopen-kernels-package

之后的生成应该可以正常运行。你可以点击消息中的链接,如果你正好使用相同的操作系统,按照里面的步骤修复这个问题。如果在你的操作系统上没有明确的方法来编译或安装 MIOpen 内核,请考虑按照下面的“在 Docker 内运行”指南操作。

在 Docker 内运行
首先拉取最新的 rocm/pytorch Docker 镜像,并启动镜像并连接到容器中(摘自 rocm/pytorch 文档):docker run -it –network=host –device=/dev/kfd –device=/dev/dri –group-add=video –ipc=host –cap-add=SYS_PTRACE –security-opt seccomp=unconfined -v $HOME/dockerx:/dockerx rocm/pytorch

在容器内执行以下命令:

cd /dockerx
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
python -m pip install –upgrade pip wheel

# 可能你不需要 ”–precision full”,但是删除 ”–no-half” 会导致驱动崩溃
REQS_FILE=’requirements.txt’ python launch.py –precision full –no-half
后续运行只需要重启容器,再次连接到它并在容器内执行以下命令:在列表中找到容器名称:docker container ls –all,选择匹配 rocm/pytorch 镜像的容器,重启它:docker container restart <container-id>,然后连接到它:docker exec -it <container-id> bash。

cd /dockerx/stable-diffusion-webui
# 可选:”git pull” 来更新仓库
REQS_FILE=’requirements.txt’ python launch.py –precision full –no-half
容器内的 /dockerx 文件夹应该可以在主机的主目录下同名访问。

在 Docker 内更新 Python 版本
如果 web UI 与 Docker 镜像内预安装的 Python 3.7 版本不兼容,以下是更新 Python 版本的指南(假设你已经成功按照“在 Docker 内运行”操作):

在容器内执行以下命令:

apt install python3.9-full # 确认每一个提示
update-alternatives –install /usr/local/bin/python python /usr/bin/python3.9 1
echo ‘PATH=/usr/local/bin:$PATH’ >> ~/.bashrc
运行 source ~/.bashrc,并按照对已有容器相同的命令继续操作。

可能你不需要 ”–precision full”,删除 ”–no-half” 也可以在某些显卡上正常工作。像 Radeon RX 6000 系列和 RX 500 系列的显卡可以在不使用选项 –precision full –no-half 的情况下正常工作,节省大量 VRAM(注这里)。

在 AMD 和 Arch Linux 上安装
以下是在 AMD 和 Arch Linux 上安装 Stable Diffusion WEB UI 的指南:

在 Arch Linux 上使用 Arch 特定的包安装 webui
这个指南可能适用于其他基于 Arch 的 Linux 发行版(测试日期为 2023 年 2 月 22 日)。

首先安装 Arch 特定的依赖,从所需的依赖开始,安装 pip:sudo pacman -S python-pip。

然后根据你的 CPU 类型选择安装 pytorch 包。如果你的 CPU 支持 AVX2 指令集(超过 Haswell(Intel,2013)或 Excavator(AMD,2015)的 CPU 微架构),安装 python-pytorch-opt-rocm 包以获得优化。否则,安装 python-pytorch-rocm 包。

安装 torchvision 包时,可以使用 AUR 助手或手动克隆 git 仓库并编译安装。

设置 venv 环境并安装剩余的 Python 依赖。

最后,在项目根目录运行 webui.sh 以启动 Stable Diffusion WEB UI。

限制
请注意,GPU 型号必须得到 Arch 依赖的支持。你可以在 PYTORCH_ROCM_ARCH 变量中查看你的 GPU 是否被列为支持的构建架构。如果不支持,考虑本地构建这两个包或使用其他安装方法。

另外,Arch 依赖(pytorch,torchvision)通过完整的系统更新和编译保持最新,这可能不是希望依赖组合使用固定版本的理想选择。

总结
以上是在不同环境下安装和运行 Stable Diffusion WEB UI 的指南。根据你的操作系统和 GPU 型号,选择合适的安装方法,并按照指南进行操作,以便在 AMD GPU 上使用 Stable Diffusion WEB UI 进行稳定扩散模型的训练和应用。

正文完