AIGC 实战(环境篇) – 安装部署 Stable Diffusion WebUI

上篇文章详细解释了怎么在 exsi 8.0 虚拟中安装 debian 系统,并配置相应 N 卡驱动。本篇记录如何部署 Stable Diffusion WebUI。

安装 Python 3.10

Stable Diffusion WebUI 目前最低支持 Python 3.10,安装命令:

  sudo apt update && sudo apt upgrade 
  sudo apt install wget build-essential libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev # 安装变异依赖环境
  cd ~ 
  wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
  tar xzf Python-3.10.0.tgz

进入解压后的文件夹内,进行选项配置

cd Python-3.10.0
./configure --enable-optimizations

#--enable-optimizations为优化性能选项,其余类似的还有 --prefix=PATH 指定安装目录……,可根据需要进行选择。
#默认安装路径为 /usr/local/bin

安装 Python 3.10.0

make altinstall

#altinstall用于防止编译器覆盖默认Python版本

验证安装

root@raspberrypi:~ # python3.10.0
Python 3.10.0 (default, Dec  5 2021, 22:46:09) [GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

安装 Anaconda

非常推荐使用 Anaconda。Anaconda 可以便捷获取包且对包能够进行管理,同时对 Python 环境可以统一管理的发行版本。安装命令也很简单:

  wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
  bash ./Anaconda3-2023.09-0-Linux-x86_64.sh

您可以按<空格>来阅读。
要继续在 Debian 12 上安装 Anaconda Python,请按 "Q"。
要接受许可协议,请输入 "yes" 并按 。
默认情况下,Anaconda 安装在登录用户主目录的 anaconda3/(root/anaconda3) 目录中。如果您想将 Anaconda Python 安装在其他位置,请输入该位置。
完成后,按 。
正在安装 Anaconda Python。需要几秒钟才能完成。
如果您希望在打开新的终端应用程序时初始化 Anaconda Python,请输入 "yes" 并按 。
如果您只想在需要时初始化 Anaconda Python,请输入 "no " 并按 。

检查 Anaconda Python 是否已安装成功:

conda --version

如果提示 conda: command not found,执行:

vim ~/.bashrc
export PATH=$PATH:/root/anaconda3/bin
source ~/.bashrc

创建 Python3.10.0 环境,并使用该环境

conda create -n sd python==3.10.0
conda activate sd
方法一:
# 第一步:首先退出环境
conda deactivate

# 第二步:查看虚拟环境列表,此时出现列表的同时还会显示其所在路径
conda env list

# 第三步:删除环境
conda env remove -p 要删除的虚拟环境路径
conda env remove -p /home/kuucoss/anaconda3/envs/tfpy36   #我的例子

方法二:

# 第一步:首先退出环境
conda deactivate

# 第二步:删除环境
conda remove -n  需要删除的环境名 --all

python -V  #注意V是大写

安装 PyTorch

首先在 PyTorch 官网查询对应 CUDA 版本的 Torch

# 使用conda安装,两种安装方式二选一
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

# 使用pip安装,两种安装方式二选一
pip3 install torch torchvision torchaudio

如果提示 ClobberError 错误:

conda clean --all # 原因:之前安装包缓存未清理,导致安装包不能正常安装。

测试 pytorch 是否安装成功
在 torchtest 虚拟环境中,首先输入 python,然后 import torch,如果没有任何报错,直接下一行即是安装成功,如图所示:

image.png

注意:目前安装的 cuda 版本为 12.3,而 pytorch 版本的 cud 版本未更新,仍为 12.1。后续 Pytorch 需要升级。

部署 Stable Diffusion WebUI

下载 stable-diffusion-webui

注意首先激活 Python 3.10 环境:

conda activate sd

然后下载 stable-diffusion-webui

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

安装依赖

cd 到 stable-diffusion-webui 目录安装相应的依赖,如有访问网络超时、失败等,注意按照章节 2.3 中设置国内源,如果再次失败,重试几次一般都可完成安装。

cd stable-diffusion-webui
pip install -r requirements_versions.txt
pip install -r requirements.txt

tb-lightly 报错的解决办法:

pip源中没有对应的“tb-nightly”依赖包

1.临时更换为阿里源(推荐这种)
python -m pip install tb-nightly -i https://mirrors.aliyun.com/pypi/simple
2.换的全局源
python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple

再次安装 tb-inghtly就可以了

启动 stable-diffusion-webui

安装完成后,执行如下启动命令:

python launch.py --listen --enable-insecure-extension-access

这一步骤会下载一些常用模型,如果遇到下载失败,根据报错提示在 huggingface.co 下载模型放到对应目录,如下载 stable-diffusion-v1-5 模型,搜索找到 https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main

image.png

点击图中下载按钮,下载 v1-5-pruned-emaonly.safetensors 到 stable-diffusion-webui/models/Stable-diffusion 目录,其他模型同理。

模型下载完成,再次执行启动命令,提示已启动到 7860 端口,则可以通过 IP+7860 端口访问:

image.png

公网建议设置访问密码,注意替换下面命令当中的 username:password 为用户名、密码。

python launch.py --listen --enable-insecure-extension-access --gradio-auth username:password

python launch.py --xformers --listen --enable-insecure-extension-access --no-half-vae --disable-nan-check  # 局域网使用,并使用OPwRT ddns 端口转化到外网

上述命令非后台运行,如需后台运行可以使用 nohup、tmux 等方法实现。

如遇报错,可参阅:

提示错误 WARNING:xformers:WARNING[XFORMERS]: xFormers can't load C++/CUDA extensions. 解决方法,推荐去 xforms git 上查阅官方信息

pip install lmdb
官方推荐命令:
conda install xformers -c xformers

验证 xforms 版本:

python -m xformers.info

image.png

使用 stable-diffusion 生成图片

下载一个模型到/stable-diffusion-webui/models/Stable-diffusion 目录,模型可以在 https://civitai.com/ 查找,如下图所用 majicMIX realistic 模型。下载完成后点击左上角刷新按钮,然后选择刚下载的模型,输入 Promot 和参数即可生成图片。
image.png
附上图所用 Promot 和参数
Prompt:

1 girl a 24 y o woman, blonde, dark theme, soothing tones, muted colors, high contrast, look at at viewer, contrasty , vibrant , intense, stunning, captured in the late afternoon sunlight, using a Canon EOS R6 and a 16-35mm to capture every detail and angle, with emphasis on the lighting and shadows, late afternoon sunlight, 8K

Negative Prompt:

(deformed, distorted, disfigured, doll:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation, 3d, illustration, cartoon, flat , dull , soft, (deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs,

其他参数:

image.png