StableDiffusion-WebUI安装

2024-03-13 12:29:10 浏览数 (2)

本文介绍stable-diffusion-webui项目及相关插件的安装。

下载WebUI

代码语言:javascript复制
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

启动服务

windows环境

代码语言:javascript复制
webui-user.bat

Linux环境

在webui.py文件77行左右如下代码前加入cmd_opts.listen = True,可以让外部地址访问服务。

代码语言:javascript复制
if cmd_opts.server_name:
    server_name = cmd_opts.server_name
else:
    server_name = "0.0.0.0" if cmd_opts.listen else None

然后执行如下命令,访问7860端口即可看到Web界面。

代码语言:javascript复制
python webui.py

若出现错误:ImportError: libGL.so.1: cannot open shared object file: No such file or directory

代码语言:javascript复制
yum install -y mesa-libGL

若通过sh webui.sh -f方式启动服务,这种方式会自动安装依赖,则一般会遇到如下错误。

代码语言:javascript复制
Traceback (most recent call last):
  File "launch.py", line 38, in <module>
    main()
  File "launch.py", line 29, in main
    prepare_environment()
  File "/data/code/refer/stable-diffusion-webui/modules/launch_utils.py", line 254, in prepare_environment
    run(f'"{python}" -m {torch_command}', "Installing torch and torchvision", "Couldn't install torch", live=True)
  File "/data/code/refer/stable-diffusion-webui/modules/launch_utils.py", line 101, in run
    raise RuntimeError("n".join(error_bits))
RuntimeError: Couldn't install torch.
Command: "/data/code/refer/stable-diffusion-webui/venv/bin/python3" -m pip install torch==2.0.1 torchvision==0.15.2 --extra-index-url https://download.pytorch.org/whl/cu118
Error code: 1

需要把webui.sh文件中如下创建虚拟环境变量的脚本代码注释掉:

代码语言:javascript复制
if [[ -z "${VIRTUAL_ENV}" ]];
then
    printf "n%sn" "${delimiter}"
    printf "Create and activate python venv"
    printf "n%sn" "${delimiter}"
    cd "${install_dir}"/"${clone_dir}"/ || { printf "e[1me[31mERROR: Can't cd to %s/%s/, aborting...e[0m" "${install_dir}" "${clone_dir}"; exit 1; }
    if [[ ! -d "${venv_dir}" ]]
    then
        "${python_cmd}" -m venv "${venv_dir}"
        first_launch=1
    fi
    # shellcheck source=/dev/null
    if [[ -f "${venv_dir}"/bin/activate ]]
    then
        source "${venv_dir}"/bin/activate
    else
        printf "n%sn" "${delimiter}"
        printf "e[1me[31mERROR: Cannot activate python venv, aborting...e[0m"
        printf "n%sn" "${delimiter}"
        exit 1
    fi
else
    printf "n%sn" "${delimiter}"
    printf "python venv already activate: ${VIRTUAL_ENV}"
    printf "n%sn" "${delimiter}"
fi

shell脚本本质上是调用webui.py文件进行启动,所以让外部地址访问服务还是需要参考提到的步骤。

ControlNet的介绍和安装

ControlNet是一种神经网络结构,可以通过添加额外的条件来控制Stable Diffusion模型的图像生成。Stable Diffusion中的ControlNet插件可以增强稳定扩散的方法,在文本到图像生成过程中使用条件输入,如涂鸦、姿态、边缘检测、分割映射、pose关键点等。它可以让生成的图像将更接近输入图像,这比传统的图像到图像生成方法有了很大的改进。

安装过程开始,首先在主页面,点击Extensions - Available - Load From,会显示可以安装的插件。

在下列列表中搜索到sd-webui-controlnet,然后点击右边的install,选择sd-webui-controlnet

manipulations安装即告完成。

LoRA (sd-webui-additional-networks)的安装

LoRA是一种轻量级的神经网络,可以控制Stable Diffusion模型的空间信息。LoRA可以控制Stable Diffusion的分辨率、缩放、旋转、裁剪等。LoRA可以和任何Stable Diffusion模型配合使用,不需要合并模型。

虽然Stable Diffusion WebUI自带一个LoRA,但是一般为了方便我们会使用sd-webui-additional-networks这个插件。这次,需要在主页面点击Extensions - Install from URL,然后在第一个文本框输入https://github.com/kohya-ss/sd-webui-additional-networks.git:

点击Install,安装即可完成。

在安装完两个插件之后,重启进程,主页面应该会显示出Additional Networks和ControlNet两个小窗口。

安装中文包插件

https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CN.git

安装参考:https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CN

中文包2:

https://github.com/hanamizuki-ai/stable-diffusion-webui-localization-zh_Hans

如果需要双语显示,可以安装如下插件,并在‘Settings - User interface - Localization’选择为None,然后在Settings - Bilingual Localization中选择之前安装的中文包,因此,前面的中文包是需要的,该插件是提供双语的展示形式。

插件地址:https://github.com/journey-ad/sd-webui-bilingual-localization

每次装完插件之后,需要应用并重启Stable Diffusion用户界面。

模型安装

下来就是要下载不同的模型了。

1. 大模型/基础模型(Checkpoint模型)

大模型的后缀名一般是ckpt或者safetensors,模型比较大,一般在数个G。常用的模型有anything(二次元)、ChilloutMix(三次元)、Dreamshaper(绘画)等。此处以ChilloutMix( https://huggingface.co/AnonPerson/ChilloutMix/tree/main )为例:

选择自己需要的ckpt或者safetensors即可。下载后的文件需要放置到modelsStable-diffusion中。

然后在主界面的左上角点击蓝色的按钮,即可刷新所有的模型,点击新安装的即可:

2. LoRA模型(微调模型)

LoRA模型的后缀有ckpt、safetensors和pt等,要配合大模型使用。文件大小比较小,一般在数百兆。此处以前段时间很火的Korean-doll-likeness( https://huggingface.co/AnonPerson/ChilloutMix/blob/main/Korean-doll-likeness.safetensors )为例

点击Download,将下载的文件放置到extensionssd-webui-additional-networksmodelslora:

3. ControlNet模型

ControlNet的模型在 https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main 下载。

由于ControlNet的方法众多,选择其中需要的pth文件下载即可。

Prompt测试

生成SD的prompt可以让ChatGPT生成,因为训练数据截止时间问题,它是不明白Stable Diffusion,但它知道Dalle2,因此要解释。

Examples of high quality prompt for stunning close-up photorealistic illustration of Ana de Armas for text-to-image models (Stable Diffusion, midjourney or Dalle2) are

– portrait of beautiful happy young ana de armas, ethereal, realistic anime, trending on pixiv, detailed, clean lines, sharp lines, crisp lines, award winning illustration, masterpiece, 4k, eugene de blaas and ross tran, vibrant color scheme, intricately detailed

– alberto seveso and geo2099 style, A highly detailed and hyper realistic portrait of a gorgeous young ana de armas, lisa frank, trending on artstation, butterflies, floral, sharp focus, studio photo, intricate details, highly detailed, by Tvera and wlop and artgerm

Give me more examples.

查看GPU信息

代码语言:javascript复制
nvidia-smi 

Tue Jun 27 15:00:38 2023       
 ----------------------------------------------------------------------------- 
| NVIDIA-SMI 450.102.04   Driver Version: 450.102.04   CUDA Version: 11.0     |
|------------------------------- ---------------------- ---------------------- 
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|=============================== ====================== ======================|
|   0  GRID T4-8C          On   | 00000000:00:09.0 Off |                    0 |
| N/A   N/A    P0    N/A /  N/A |   1104MiB /  8192MiB |      0%      Default |
|                               |                      |                  N/A |
 ------------------------------- ---------------------- ---------------------- 
                                                                               
 ----------------------------------------------------------------------------- 
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
 ----------------------------------------------------------------------------- 

查看cuda版本

代码语言:javascript复制
nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Wed_Jul_22_19:09:09_PDT_2020
Cuda compilation tools, release 11.0, V11.0.221
Build cuda_11.0_bu.TC445_37.28845127_0

0 人点赞