本地部署 stable-diffusion-webui 并替换模型为 waifu-diffusion(没有 NSFW 问题)

参考:

Git:https://git-scm.com/download

Miniconda:https://docs.conda.io/en/latest/miniconda.html

CUDA:https://developer.nvidia.com/cuda-toolkit-archive

waifu-diffusion:https://huggingface.co/hakurei/waifu-diffusion

waifu-diffusion-v1-3:https://huggingface.co/hakurei/waifu-diffusion-v1-3

stable-diffusion-v-1-4-original: https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

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

免责声明:本文所讲内容仅供学习使用,请勿用于违法用途!请遵从 开源协议


温馨提示:

如果需要草梅友仁协助解决问题,请先从博客底部的打赏支付费用,笔者承诺在能力范围内解决问题。

咨询问题 100 元起步;远程连线解决问题 200 元起步。

QQ:2774730186

草梅交流及 BUG 反馈群:807530287

如果不想支付费用的话,请尝试百度/Google ,你遇到的问题一定已经有人遇到过了,大家的时间都是很宝贵的,所以请尝试自己动手解决问题


现在更推荐使用由秋葉 aaaki制作的AI 绘画一键启动器!!!


开始

要顺利运行 stable-diffusion-webui,需要足够大的显存(不是内存),笔者使用的电脑配置如下:

型号:联想拯救者R9000P
CPU:R7-5800H 8核
内存:16GB
显卡:RTX3060 Laptop(显存 6GB)
硬盘:512GB SSD

根据项目的 README.md ,至少需要 4GB 显存才能运行,配置不够的同学就不用尝试了。

另外本项目是 N 卡教程, A 卡用户请自行搜索其他教程。

下面开始正式进入教程

准备工作

根据项目 wiki 必须的依赖 有:

  1. Python 3.10.6
  2. Git 官网下载
  3. CUDA,CUDA 的版本由显卡决定,后续会讲述如何选择 CUDA 版本

开始安装

1.安装 Python 3.10.6

和其他文章不同,笔者依旧推荐使用 Miniconda 来管理 Python 版本,可以实现 Python 多版本切换,下面来讲述如何安装 Miniconda。

进入Miniconda 官网,选择适用于自己的操作系统的版本,下载安装即可,全部图形化操作。

image-20221006235256857

安装成功后在命令行执行

conda -V

成功跳出版本即为安装成功。

conda 4.12.0

这里不用着急创建 Python 环境,配置完镜像再创建。

接下来配置镜像环境,加快安装速度。(参考:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

先执行 conda config --set show_channel_urls yes 生成 .condarc 文件

然后在 C:\Users\XXX\.condarc 下修改文件内容如下:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

再运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。

然后创建 Python 3.10.6 版本的环境

# 因为本项目是教 stable-diffusion-webui 的,所以就直接叫 stable-diffusion-webui 了
conda create --name stable-diffusion-webui python=3.10.6
# 激活环境,注意,在要运行的地方激活,这个环境切换不是全局的。
conda activate stable-diffusion-webui

创建环境的这一步有概率遇到 SSL 问题,可能跟 openssl 的版本有关,该问题请自行搜索解决

该问题请参考:https://blog.cmyr.ltd/archives/356c5ce1.html

配置 pip 镜像加速(参考:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

升级 pip 到最新的版本 (>=10.0.0) 后进行配置:

python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

pip 这一步有概率遇到 https 无法访问的问题,可能跟 openssl 的版本有关,该问题请自行搜索解决

该问题请参考:https://blog.cmyr.ltd/archives/356c5ce1.html

这时我们就有了一个 Python 3.10.6 的纯净环境了

2.安装 Git

前往 Git 官网 或其他镜像网站下载即可。

image-20221008235858036

命令行运行

git --version

出现版本号即为安装成功

git version 2.33.1.windows.1

3.安装 CUDA

在安装 CUDA 之前,先在命令行执行

nvidia-smi

会跳出如下结果,只要看 CUDA Version一项即可,记住这个版本号,之后就下载这个版本即可。

比如说笔者这里就是 11.6版本,下载的 CUDA 也是这个版本就行了。

image-20221006235655566

接下来前往 CUDA 的官网,下载对应版本即可。

image-20221006235824066

CUDA 的版本很多,请一定要下对版本,建议就下载nvidia-smi查询出来的结果。

另外多说一句,CUDA 的体积很大,建议安装在 C 盘之外的硬盘,免得占用宝贵的 C 盘空间。

image-20221007000154365

在版本的选择上,操作系统版本就不用多说了,选择自己的系统就行,win10 就选 10,win11 就选 11。

至于下面的 Installer Type,用 local 版本比较省事,下载一次就是完整的安装包了,用 network 版本依旧是要联网下载的,结果也没差太多。

4.下载项目源码

# 下载项目源代码
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
# 切换到项目根目录
cd stable-diffusion-webui

5.下载 stable-diffusion[可选]

本项目不会自动去下载模型,故需要手动下载 stable-diffusion

如果就使用 waifu-diffusion,可以跳过本步骤,直接看下一步

下载的方式有 3 个:

  1. 官网下载:https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt

  2. File storage:https://drive.yerf.org/wl/?id=EBfTrmcCCUAGaQBXVIj5lJmEhjoP1tgl

  3. Torrent:

    magnet:?xt=urn:btih:3a4a612d75ed088ea542acac52f9f45987488d1c&dn=sd-v1-4.ckpt&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337

数据模型较大,请确保磁盘空间充足。

下载完成后的模型请放到 models\Stable-diffusion\ 下,并将文件名称修改为 model.ckpt

6. 下载 waifu-diffusion[可选]

要使用 waifu-diffusion 作为模型,也是一样的,从官网下载即可。

下载地址:https://huggingface.co/hakurei/waifu-diffusion-v1-3/tree/main

下载完成后的模型请放到 models\Stable-diffusion\ 下,并将文件名称修改为 model.ckpt

至于 ckpt 文件怎么选,选最近更新的,然后名字中带有 float16 的优先。当然也可以试试别的,自行尝试即可

正式运行

是的没错,stable-diffusion-webui 项目不需要手动安装依赖,他已经帮我们做好了,只需要运行即可。

# 如果没有切换到 stable-diffusion-webui 环境记得切换
conda activate stable-diffusion-webui
# 切换到项目根目录运行
webui-user.bat

接下来就是一段漫长的等待时间,下载的内容是非常多的(几个 G),请耐心等待。

依赖安装完毕后,会跳出一个链接,复制到浏览器访问即可(默认是 http://127.0.0.1:7860 )。

然后就在输入框里面写你想要生成的图片即可,相信各位的英语水平一定比笔者要高,在此就不赘述了。

【Prompt 里填写想要的特征点,Negative prompt 里填不想要的特征点】

温馨提示:Prompt 里最大只支持 77 个词,多了会报错,删掉几个词就行

image-20221009003500596

可能是由于源码差异,在相同配置下,运行 waifu-diffusion 最大只能生成 512 x 512 ,但是运行 stable-diffusion-webui 时最大可以支持 832 x 832,可以说提高了一些性能。

另外多说一句,本项目和 waifu-diffusion 不同,没有 NSFW 问题!

最后

那么最后就是老问题了,要怎么写 prompt 呢?

答案是科学上网,自行前往推特上 Waifu Diffusion 相关话题下查看即可,点击 ALT,看下别人是怎么写的就行了。

image-20221007005135243

完成以上步骤之后,相信你也能愉快的玩耍 Waifu Diffusion 了。

喜欢的话就请支持下笔者。

附录

2022-10-13 更新:关于如何写 tag ,可参考源站 Danbooru的写法,原因是 waifu-diffusion/stable-diffusion/Novel AI 等都有从该网址获取 tag 进行训练,所以直接使用源站的 tag 是最准确的