用Docker搭建Stable Diffusion Web UI 实现丝滑的AI画()图之旅

想看部署的直接跳到后面即可,前面我花点时间讲讲为什么docker是我眼中的最优解~

这个可以在GPU和CPU上运行
docker在各大系统其实都能运行Windows,MacOS,Linux,本文的演示环境为Ubuntu22.04

Docker - Logo

为什么我不推荐直接本机部署而是使用docker?

直接装在本机运行效率不是更高吗?

你别说这还真的不一定,这就得看你对效率的定义是什么。如果你的定义是软件运行效率,那无疑本地部署绝对是能把电脑性能发挥到上限的一个做法,但是你会付出的代价则是冗长而又痛苦的环境配置。此时很多人可能又要说了,只要环境配置好了那不还是一样的用吗?但是当你本机运行的软件越来越多有时候你就会发现不同软件的环境开始“打架”了,到时候一点点的图改问题还是非常难受的。

但是如果你用的是docker呢?那就会省去一大把配置环境的时间,要是实在是不小心,把docker内的环境搞崩了也没关系的。大不了就直接把虚拟机关掉了就行了。对宿主机都不会有实质性的影响。用一点点的性能和硬盘空间,换取方便和稳定在作者眼中我认为是十分合理的。

首先没有安装docker的需要先安装docker

如果已经安装过Docker和Nvidia Docker Toolkit的可以直接跳过

Docker安装

首先我们先运行一下

apt update && apt-get install curl

然后使用官方的运行脚本直接安装即可

 curl -fsSL https://test.docker.com -o test-docker.sh
 sudo sh test-docker.sh

到这里docker的安装就已经结束了,但是现在你运行docker的所有操作都需要添加sudo,我们现在要把docker用户添加到sudo用户组中

sudo groupadd docker
sudo gpasswd -a ${USER} docker

#接着重启docker
sudo service docker restart

此时此刻你就可以直接运行docker命令了。

安装Nvidia Docker Toolkit (如果你有Nvidia独立显卡的话)

因为docker是没有办法直接调用显卡的,所以需要使用Nvidia官方给的类似于小插件的东西让docker内的容器可以调用宿主机的显卡

这部分其实跟着Nvidia官方给的命令就可以了

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg 
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | 
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | 
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

到这里前期的准备工作基本就做完了。

在docker中安装Stable diffusion Web UI

我们将使用这个GitHub大佬的库:
https://github.com/AbdBarho/stable-diffusion-webui-docker

首先我们先找到一个我们想存的位置,如果不知道我们就可以直接存自己的用户目录下

cd /home/你的用户名
mkdir stable-diffusion-webui-docker
cd stable-diffusion-webui-docker

okay~

然后我们去克隆这个GitHub仓库
确保自己安装了Git,没有安装的看下面的命令,安装的可以跳过

# 安装Git
sudo apt update
sudo apt install git

接下来我们可以直接用Git命令来克隆

git clone https://github.com/AbdBarho/stable-diffusion-webui-docker.git

开始构建

这个过程会有点慢,需要耐心等待

docker compose --profile download up --build

等上面这个执行完了再执行下面的代码

docker compose --profile auto up --build

等这一步执行完之后就可以打开网页的7860端口来访问WebUI了
如果你就是使用你部署的这台机器直接打开 http://localhost:7860 即可
如果你是在用短服务器,那在浏览器打开 http://你的服务器IP:7860

打开的界面如下

至此你已经可以开始愉快的画画了

安装新的checkpoint 或者是Lora

在刚才的目录下

cd data/models
  1. 安装checkpoints

    cd Stable-diffusion/
    

    然后把你想要下载的checkpoint移动进去即可

    想要更换checkpoint也很简单
    第一种方法

    第二种方法

    这两种方式都是可以的

  2. 安装Lora
    其实这个和安装checkpoint的做法基本一样,就是目录不一样
    我们需要cd到Lora的这个目录下

    从项目根目录进去

    cd data/models/Lora
    

    然后下载你想要的Lora文件进去就可以了

    同样的在WebUI中你可以这样来添加你想要的Lora

Checkpoints和Lora网站

我在这里提供一个拥有很多用户自己训练的Lora和checkpoint的网站
https://civitai.com/

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部