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:
- 由于网络原因,下载过程可能会很慢,要耐心等待。
- 整个过程中,可能会由于网络影响,出现多次中断,卡顿。出现这种情况后,Ctrl+C中断当前cmd执行,重新运行webui-user.bat
尝试绘画
在浏览器打开网址:http://127.0.0.1:7860/
在“txt2img”的tab中输入关键字“tree, house, grass, child”,然后点击“Generate”就会生成如下图片。(每一次运行结果都不同,不一定就是这张图片)
恭喜你,打开了AI绘画世界的大门!