AIGC 热潮正猛烈地席卷开来,可以说 Stable Diffusion 开源发布把 AI 图像生成提高了全新高度,特别是 ControlNet 和 T2I-Adapter 控制模块的提出进一步提高生成可控性,也在逐渐改变一部分行业的生产模式。惊艳其出色表现,也不禁好奇其背后技术。本文整理了一些学习过程中记录的技术内容,主要包括 Stable Diffusion 技术运行机制,希望帮助大家知其所以然。

SD最大的特征,就是由于其开源的特性,可以在电脑本地上离线运行。可以在大多数配备至少8GB显存的适度GPU的消费级硬件上运行。笔者推荐显存线是12G。

由于AI训练和产出的本质是软硬件结合了的深度学习原理,因此常常会用到英伟达公司的显卡,以及相关的诸如CUDA、CUDNN,乃至python相关的深度学习组件如xformer、pytorch等,学习AI想要进阶的话非常容易碰到这些需要大量额外学习编程知识的内容,所以非常容易让小伙伴们感到困难。

现已支持Lora模型、canny边缘检测、depth深度图、openpose动作检测等功能。其余功能正在逐步完善中。无需科学上网,国区直接下载。

为什么本地安装

没有生成数量限制、不排队、不花钱、不怕网络不稳定、插件多、自由度高、想怎么玩就怎么玩。

Note:最近有很多教程推Google云盘部署,其实大家也知道暂时免费,不代表永久免费。而且网络问题如果被抢了,就没法弄了。还是推荐本地部署,其实你就差一块Nvidia的显卡,实在不行来个矿卡也行啊。退一万步说,没显卡只有CPU也可以。

为什么不用离线安装包

本来Stable Diffusion就是开源软件,直接安装自动更新。离线安装包虽然方便,但是难免有人利用安装包夹带私货,更有甚者传播木马病毒,所以还是敬而远之。

推荐配置

显卡:Nvidia 30/40系显卡(显存至少8GB)

硬盘:SSD固态硬盘至少128GB左右

内存:至少16GB

操作系统:Win10/Win11

网络:无需科学上网,正常国内网络即可。部分场景网络可能不稳定,较慢,多等待,多重试几次即可。

楼主配置:Win11、Intel i7(12700H)、内存32GB、Nvidia 3060ti(8GB显存)

生成一张图片大约5s左右

note:没有Nvidia显卡也可以,只不过通过CPU运算要慢一些。

阅读说明

请按照序章节顺序依次进行安装,整个过程顺利的话需要2~3小时。

安装Miniconda

下载安装

这是用来管理多版本Python的软件,安装后默认自带python3.10版本,具体请查看下面截图网页上显示信息。

下载地址:
https://docs.conda.io/en/latest/miniconda.html

直接下载win的64位版本。下载完成后,直接双击打开,一路点击next回车完成即可。

安装验证

点击win键,在搜索栏输入“miniconda3”,点击“Anaconda Prompt(miniconda3)”。

在弹出的cmd窗口中输入“conda -V”显示版本号,就认为安装成功了。大家按照自己下载版本号验证即可。

初始化

接着在cmd窗口输入显示源命令

以及清理索引缓存命令

创建python环境

输入命令如下

出现提示,按y,然后回车。

看到这个界面就已经成功了。

激活环境

输入如下命令,然后回车。

安装升级pip

输入命令安装pip

设定安装源为阿里云

安装git

下载安装

下载地址:
https://git-scm.com/download/win

点击下载文件,一路next回车安装完成。

设置环境变量

在“设置”中输入“环境变量”

点击“环境变量”

查看“系统环境变量”中的“Path”,点击“编辑”。

查看是否“C:\Program Files\Git\cmd”,有就OK了。如果没有,点击“新建”自己输入“C:\Program Files\Git\cmd”,排序位置无所谓。

验证安装

打开cmd窗口,输入命令

显示下载的版本就成功了。

安装cuda

判断cuda版本

cuda就是Nvidia显卡的计算程序。有两个版本:

A:Nvidia显卡驱动的cuda版本。

通过nvidia-smi命令获取。

B:cuda工具套件的cuda版本。

通过nvcc -V命令获取。

需要注意A要大于等于B。

下载安装

通过上一步nvidia-smi命令,获取到显卡驱动的cuda版本是12.1,那么我们下载的cuda工具套件版本,就要选择≤12.1的版本了。

Note:这里由于考虑pytorch的版本兼容性,建议查看pytorch官网在决定下载的版本。pytorch官网:
https://pytorch.org/get-started/locally/

从图中看出,当前pytorch只支持cuda11.7和cuda11.8,那么我们也建议下载这两个版本其中一个,比如就是cuda11.8版本。

cuda下载网址:
https://developer.nvidia.com/cuda-toolkit-archive

选择本机操作系统等,切记选择“exe(local)”本地包,然后点击download。

下载完成后,双击解压安装,建议选择一个C盘外空间较大的盘,例如:F盘等。

安装webui

下载代码

建议选择SSD的固态硬盘,这样运算速度快一些。比如,我想安装在F盘。

在miniconda的命令窗口中,输入:F:回车

接下来执行git命令

等待下载完成。

下载模型

下载地址:
https://huggingface.co/stabilityai/stable-diffusion-2-1/blob/main/v2-1_768-ema-pruned.ckpt

把这个训练模型v2-1_768-ema-pruned.ckpt放入models\Stable-diffusion文件夹里面。(我的文件夹是“F:\stable-diffusion-webui\models\Stable-diffusion“)

note:models\Stable-diffusion这个文件夹,专门存放用于生成AI绘图的绘图元素的基础模型库。后续如果在其他网站比如civitai之类的地方下载的ckpt或者safetensors文件也是放在这个文件夹里面。

启动程序

在miniconda小窗输入如下命令:

然后回车,等待漫长的安装各种依赖的过程。一直到如下界面出现,就启动成功了。

note:

  1. 由于网络原因,下载过程可能会很慢,要耐心等待。
  2. 整个过程中,可能会由于网络影响,出现多次中断,卡顿。出现这种情况后,Ctrl+C中断当前cmd执行,重新运行webui-user.bat

尝试绘画

在浏览器打开网址:http://127.0.0.1:7860/

在“txt2img”的tab中输入关键字“tree, house, grass, child”,然后点击“Generate”就会生成如下图片。(每一次运行结果都不同,不一定就是这张图片)

恭喜你,打开了AI绘画世界的大门!