[Stable Diffusion]webui部署(Linux)

Github: https://github.com/AUTOMATIC1111/stable-diffusion-webui

更新日志

webui 项目更新频繁,不能保证本文内容仍然适用于后续版本。

  • 2024.01.22:更新至 webui v1.7.0 版本 (commit hash 为 cf2772f)
  • 2023.06.14:文章首次发布,基于 v1.3.2 版本 (commit hash 为 baf6946)

部署环境

  • 操作系统:Ubuntu Server 22.04(无图形界面)
  • GPU:一张 NVIDIA RTX 3080Ti 显卡(12 GB 显存)

准备部署完成后通过其他电脑的浏览器访问服务器的 webui 服务。

全自动安装

官方给出的 Linux 安装指导非常简单:下载 webui.sh,运行它,然后一切都会被全自动地下载、安装完成

但是我是不情愿让别人对我的电脑做手脚而自己却不知情的,所以决定研究一下 webui.sh. 在查看其内容之后,我发现它无非是干这么几件事:下载 webui 仓库、在 ./venv 下创建并激活 python 虚拟环境、调用 launch.py 安装需要的包及下载需要的仓库、启动 webui.

虽然 webui.sh 帮我们全自动地完成了这些工作,但它并不适合以下几种情况:

  • 希望使用 conda 而不是 venv 来管理环境;
  • 由于网络原因且缺少科技手段,pip installgit clone 无法稳定执行;
  • 希望在无网服务器上安装 webui;
  • ……

于是在这些情况下我们只能手动分解步骤安装了。

分解步骤安装

1. 下载 stable-diffusion-webui 仓库

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

2. 下载其他仓库

webui 仅仅是一个外层界面包装,核心功能是通过其他仓库(或以仓库的形式、或以安装包的形式)支撑的。其他仓库需放在 ./repositories 文件夹下:

1
mkdir repositories

然后依次下载以下仓库,并切换到合适的版本以避免可能的版本适配问题:

stablediffusion

1
2
git clone https://github.com/Stability-AI/stablediffusion.git ./repositories/stable-diffusion-stability-ai
git -C ./repositories/stable-diffusion-stability-ai checkout cf1d67a6fd5ea1aa600c4df58e5b47da45f6bdbf

generative-models

1
2
git clone https://github.com/Stability-AI/generative-models.git ./repositories/generative-models
git -C ./repositories/generative-models checkout 45c443b316737a4ab6e40413d7794a7f5657c19f

k-diffusion

1
2
git clone https://github.com/crowsonkb/k-diffusion.git ./repositories/k-diffusion
git -C ./repositories/k-diffusion checkout ab527a9a6d347f364e3d185ba6d714e22d80cb3c

CodeFormer

1
2
git clone https://github.com/sczhou/CodeFormer.git ./repositories/CodeFormer
git -C ./repositories/CodeFormer checkout c5b4593074ba6214284d6acd5f1719b6c5d739af

BLIP

1
2
git clone https://github.com/salesforce/BLIP.git ./repositories/BLIP
git -C ./repositories/BLIP checkout 48211a1594f1321b00f14c9f7a5b4813144b2fb9

3. 建立并激活新 conda 环境

1
2
conda create -n sd-webui python=3.10
conda activate sd-webui

4. 安装 pytorch

1
pip install torch==2.0.1 torchvision==0.15.2 --extra-index-url https://download.pytorch.org/whl/cu118

5. 安装 requirements.txt 中的依赖包

1
2
pip install tb-nightly -i https://mirrors.aliyun.com/pypi/simple/
pip install -r requirements_versions.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

说明:requirements 中的 basicsr 装起来很容易出现问题,一阵摸索后得到的结论是,要先用阿里源安装 tb-nightly,然后用清华源安装 basicsr 才能成功。

6. 安装其他依赖

1
2
3
4
5
pip install https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip
pip install https://github.com/mlfoundations/open_clip/archive/bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b.zip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -U -I --no-deps xformers==0.0.20 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install ngrok -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r repositories/CodeFormer/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

7. 下载基础模型

链接下载基础模型(Stable Diffusion v2.1,safetensors 格式,5.21 GB),放在 ./models/Stable-diffusion/ 下。

8. 启动 webui

1
python webui.py

服务默认运行在 127.0.0.1:7860 上。

一些常用参数:

  • --port PORT:更改端口。
  • --xformers:使用 xformers 优化时间和空间,建议使用
  • --listen:如果部署在远程服务器上,想通过其他电脑浏览器访问服务,则需要添加 --listen 参数,这样服务运行在服务器的 0.0.0.0:7860 上,我们在浏览器输入 <server ip>:7860 才能访问。

启动成功后界面如下:


[Stable Diffusion]webui部署(Linux)
https://xyfjason.github.io/blog-main/2023/06/14/Stable-Diffusion-webui部署(Linux)/
作者
xyfJASON
发布于
2023年6月14日
许可协议