Linux上如何使用Stable Diffusion WebUI

前提条件

  1. 已安装CUDA

  2. 已安装git

  3. 已安装Anaconda

    直接安装Anaconda不要指望Linux自带的Python。虽然Linux自带的Python,但是缺胳膊少腿,所以还是直接用了conda。


捣鼓好Stable Diffusion WebUI需要的环境

创建并激活进入虚拟环境:

conda create -n webui python=3.10.6

conda activate webui

成功进入虚拟环境之后就可以开搞了。


下载Stable Diffusion WebUI

从github上下载,终端中输入:

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

进入文件夹:

cd stable-diffusion-webui

为了减少你的麻烦,请做好以下几个铺垫步骤

pip换源

pip config set global.index-url <http://mirrors.aliyun.com/pypi/simple/>

pip config set global.trusted-host mirrors.aliyun.com

笔者提示: 安装过程中可能会遇到奇怪的问题,一般都是网络造成的,很大一部分是pip源造成的。

修改lunch.py

找到下面这段代码,给每个github地址前边都加上https://ghproxy.com/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def prepare_environment():
global skip_install

torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117")
requirements_file = os.environ.get('REQS_FILE', "requirements_versions.txt")
commandline_args = os.environ.get('COMMANDLINE_ARGS', "")

xformers_package = os.environ.get('XFORMERS_PACKAGE', 'xformers==0.0.16rc425')
gfpgan_package = os.environ.get('GFPGAN_PACKAGE', "git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379")
clip_package = os.environ.get('CLIP_PACKAGE', "git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1")
openclip_package = os.environ.get('OPENCLIP_PACKAGE', "git+https://github.com/mlfoundations/open_clip.git@bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b")

stable_diffusion_repo = os.environ.get('STABLE_DIFFUSION_REPO', "https://github.com/Stability-AI/stablediffusion.git")
taming_transformers_repo = os.environ.get('TAMING_TRANSFORMERS_REPO', "https://github.com/CompVis/taming-transformers.git")
k_diffusion_repo = os.environ.get('K_DIFFUSION_REPO', 'https://github.com/crowsonkb/k-diffusion.git')
codeformer_repo = os.environ.get('CODEFORMER_REPO', 'https://github.com/sczhou/CodeFormer.git')
blip_repo = os.environ.get('BLIP_REPO', 'https://github.com/salesforce/BLIP.git')

修改完成之后如图:

笔者提示: 刚才说安装过程中可能会遇到奇怪的问题,一般都是网络造成的,另一个原因就是从github下载东西的时候失败,所以这里直接加个代理省事。用梯子也不好使。

下载默认模型

笔者提示: 这一步不是必须的,webui.sh会自动运行下载的,但是我用服务器下的巨慢,所以手动下的。

下载 v1-5-pruned-emaonly.safetensors,放到stable-diffusion-webui/models/Stable-diffusion/里:

使用webui

终端输入启动webui:

bash webui.sh

出现URL就是成功! 点击链接用浏览器打开。

开始画图吧!

Give it a try yourself!

ControlNet

  1. WebUI extension for ControlNet下载源码:

  1. 把你下载的源码放到stable-diffusion-webui/extensions/目录。

  2. 下载模型:

    lllyasviel/ControlNet at main (huggingface.co)

    webui/ControlNet-modules-safetensors · Hugging Face

    kohya-ss/ControlNet-diff-modules at main (huggingface.co)

    从上边任意一个地址里下载模型,放到以下任意一个目录里:

    stable-diffusion-webui/models/ControlNet

    stable-diffusion-webui/extensions/sd-webui-controlnet-main/models

  3. 重启WebUI,开始使用

Lora

使用方法和ControlNet一样,下载地址:

https://github.com/kohya-ss/sd-webui-additional-networks

附录

  1. Stable Diffusion Webui:AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com)
  2. Stable Diffusion Webui 文档:Home · AUTOMATIC1111/stable-diffusion-webui Wiki (github.com)