个人Blog · 2024年2月9日 0

Stable Diffusion WebUI系列 | 在Linux上安装

本文以Ubuntu 22.04 LTS为例子。安装过程请使用一般用户登录,不要直接用root用户安装。安装过程主要包括显卡驱动安装,Anaconda安装,下载Stable Diffusion git repo,设置并启动Stable Diffusion.

1 安装显示卡驱动

1.1. Nvidia

  1. 安装 专有Nvidia驱动,之后重开机。
  2. 安装 CUDA
  3. 確认驱动安装是否正確安装
nvidia-smi
nvcc --version

1.2. AMD

  1. 安装AMD驱动程式,重开机。
sudo apt update && sudo apt upgrade -y
wget https://repo.radeon.com/amdgpu-install/22.40.3/ubuntu/focal/amdgpu-install_5.4.50403-1_all.deb
sudo apt-get install ./amdgpu-install_5.4.50403-1_all.deb
  1. 安装AMD ROCm,中间需要重开机。
sudo apt install linux-headers-`uname -r` linux-modules-extra-`uname -r`
curl -fsSL https://repo.radeon.com/rocm/rocm.gpg.key|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/rocm-keyring.gpg
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/amdgpu/5.4.2/ubuntu jammy main'|sudo tee /etc/apt/sources.list.d/amdgpu.list
sudo apt-get update
sudo apt install amdgpu-dkms
sudo reboot
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/rocm/apt/5.4.2 jammy main'|sudo tee /etc/apt/sources.list.d/rocm.list
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600'|sudo tee /etc/apt/preferences.d/rocm-pin-600
sudo apt-get update
sudo apt install rocm-hip-sdk rocm-opencl-sdk
echo "export LD_LIBRARY_PATH=/opt/rocm-5.4.2/lib:/opt/rocm-5.4.2/lib64" >> ~/.bashrc
source ~/.bashrc
  1. 確认驱动是否有正確安装
# 应会看到driver=amdgpu
sudo lshw -c video
# 查看ROCm是否正確安装
sudo apt show rocm-libs

2. 安装Anaconda

  1. 安装Python、wget、git。
sudo apt install python3 python3-pip python3-virtualenv wget git
  1. 安装 Anaconda
  2. 建立Python 3.10.6的虚拟环境
conda create --name sdwebui python=3.10.6

3. 复製Stable Diffusion WebUI储存库

  1. 將Stable Diffusion WebUI复制至用户目录
cd ~
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
  1. (选择性) 预先將模型下载至stable-diffusion-webui/models/Stable-diffusion目录,这里使用Anything v4.5
wget -nc -P ~/stable-diffusion-webui/models/Stable-diffusion https://huggingface.co/andite/anything-v4.0/resolve/main/anything-v4.5-pruned.safetensors -O anything-v4.5-pruned.safetensors
  1. 启动虚擬环境:
conda activate sdwebui

如果想要於bash script自动以conda启动虚拟环境,可以把下面两行代码加入至webui-user.sh最开始:

eval "$(conda shell.bash hook)"
conda activate sdwebui

在conda环境下,最好使用conda指令来安装套件。不过Stable Diffusion WebUI仍偏好以pip建立虚拟环境。

4. 设定启动参数

用vim编辑webui-user.sh

若显示卡VRAM在8GB以上,则设置:

COMMANDLINE_ARGS=--xformers --enable-insecure-extension-access

若显示卡VRAM小于或等于4GB,则设置:

COMMANDLINE_ARGS=--medvram --opt-split-attention --xformers --enable-insecure-extension-access

额外加上--listen参数让其他电脑能以IP存取网页界面,--share则是产生一组Gradio网址。

加上--xformers可进一步减少VRAM佔用,但是这个选项只支援Nvidia显示卡。加入--no-half-vae减少使用VAE时算出黑图的机率。

加上--enable-insecure-extension-access让你在网页界面直接装扩充功能。加上--nowebui则不会启动网页界面,单纯接收WebUI API之用。

其余参数设置请参阅Stable Diffusion WebUI系列|命令行脚本参数

5. 启动Stable Diffusion WebUI

执行webui.sh,它会自动下载PyTorch並安装依赖套件。跑完它应该会显示一组网址,本机用瀏览器开启http://127.0.0.1:7860进入网页图形界面。

cd ~/stable-diffusion-webui
./webui.sh
Stable Diffusion WebUI