Stable Diffusion模型
在上一篇的文章中我们介绍了,AIGC的相关知识以及AI绘画的历史——AIGC是什么,与AI绘画有什么关系,一篇文章带你了解AI绘画的前世今生。
我们知道了Stable Diffusion是一种潜在扩散模型,由慕尼黑大学的CompVis研究团体开发的各种生成性人工神经网络之一。它是由初创公司StabilityAI、CompVis与Runway合作开发,并得到EleutherAI和LAION的支持,同时进行了开源,其核心代码和基础功能是完全免费的,任何用户都可以下载和使用Stable Diffusion的基础版本,无需支付任何费用。
另外,Stable Diffusio也提供了AI绘画社区、基于SD的自训练AI绘画模型以及丰富的辅助AI绘画工具与插件等,不仅吸引了AI爱好者,也吸引了专业人士,共同推动了AI生成内容(AIGC)领域的发展和普及。
总之,Stable Diffusion不仅在技术上取得了显著的进步,而且在艺术创作、设计和其他多个领域展现了广泛的应用潜力。它的出现标志着AI图像生成技术的一次重大飞跃,它的发布被认为提高了AI图像生成的标准。
Stable Diffusion的源代码和模型权重已分别公开发布在GitHub和Hugging Face,可以在大多数配备有适度GPU的电脑硬件上运行。而以前的专有文生图模型(如DALL-E和Midjourney)只能通过云计算服务访问。
Stable Diffusion源码地址:stable-diffusion
Stable Diffusion模型地址:https://huggingface.co/CompVis
其他微调版本:
在线体验地址:https://huggingface.co/spaces/runwayml/stable-diffusion-v1-5
v1.5模型地址:https://huggingface.co/runwayml/stable-diffusion-v1-5
在线体验地址:https://huggingface.co/spaces/stabilityai/stable-diffusion
v2.x模型地址:https://huggingface.co/stabilityai/stable-diffusion-2-1
Stable Diffusion工具
Stable Diffusion使用需要通过代码来调用模型进行绘图,但这种方式并不便于使用,以此开发者们开发出了基于Web操作界面进行绘图的工具。比较典型和使用较多的有两个:
这两个工具都可以通过Web界面来操作绘图。SD WebUI 相对来说更简单易用,功能一目了然,入门门槛比较低,容易上手;而ComfyUI 对于 WebUI 来说,拥有更好的性能和速度,可以使用更低的内存来运行。而且节点式的界面和工作流玩法,配置灵活,玩法也更多。但是入门门槛相对较高。
初学者建议开始使用stable-diffusion-webui
, 待学习高级教程后再来了解ComfyUI
。
Stable Diffusion配置&安装
配置
拥有Nvidia独立显卡,需要足够大的显存,最低配置4GB显存,基本配置6GB显存,推荐配置12GB显存(训练推荐大于12G),最好16GB及以上,总之内存越大越好。
硬盘推荐使用固态硬盘。
A卡不推荐,性能损耗比较大,Mac电脑也是可以的,但推荐M1/M2芯片。但是既然都搞AI绘图了,推荐还是配置个台式机+N卡,不然效果嘛就不好说了。
安装
本文都以stable-diffusion-webui
来介绍,关于ComfyUI
会单独出系列文章介绍。
两种方式:
1、使用秋叶整合包,直接打包启动
可参考:
2、自己构建启动应用
本文主要以开发2为主,自己构建,如果已经安装好了,可以忽略以下步骤。
WebUI下载
项目仓库地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui,可以通过git,也可以直接下载作者的release包获取。
Python环境
注意:官方推荐安装 Python 3.10.6 版本,最好使用该版本,不然后面可能会有兼容性问题,笔者就遇到过这个问题,又重新安装回该版本。
python --version
CUDA 环境
默认 stable-diffusion-webui 运行使用的是 GPU 算力,也就是说需要用到 Nvidia 显卡(配置越高,绘图越快)
这里我们需要安装 CUDA 驱动,先确定一下电脑能安装的 CUDA 版本,桌面右下角->右键 NVIDIA 设置图标->NVIDIA 控制面板
在帮助栏选择系统信息查看软件。
注意:高版本显卡是可以安装低版本的 CUDA 驱动的,比如我也可以安装经典的 10.2 版本,但是安装 12.5 版本可以获得更高的 GPU 运行效率,所以一般来说推荐安装显卡支持的最高 CUDA 版本。
在下面的网址中找到对应的 CUDA 版本进行安装:
直接选择 “精简” 安装就可以了,安装完成之后,可以使用如下命令查看 CUDA 版本,来验证 CUDA 是否安装成功:
nvcc --version
注:如果你没有 Nvidia 显卡,也可以通过给 stable-diffusion-webui 指定运行参数 --use-cpu sd,让其使用 CPU 算力运行,但是非常不建议你这么做,CPU 算力跟 GPU 算力相比简直天差地别,可能 GPU 只需要 10 秒就能绘制完成,而 CPU 却要 10 分钟,这不是开玩笑的。另外,如果你的显卡内存不多,建议 4G 的显卡加上 --medvram 启动参数,2G 的显卡加上 --lowvram 启动参数。
Windows用户编辑webui-user.bat文件,修改第六行:
set COMMANDLINE_ARGS=--lowvram --precision full --no-half --skip-torch-cuda-test
如果是16系列显卡,出的图是黑色的话,也是修改webui-user.bat文件的第六行:
set COMMANDLINE_ARGS=--lowvram --precision full --no-half
下载模型
C站
比如:majicMIX realistic 麦橘写实
B站
Hugging Face
因为C站国内无法访问,建议使用B站和Hugging Face。
将下载好的模型放入到stable-diffusion-webui\models\Stable-diffusion下面即可。
启动项目
在安装配置好运行环境之后,直接运行工程下的 webui-user.bat 文件即可(如果是类 Unix 系统,则运行 webui-user.sh)。
使用命令
.\webui-user.bat
当看到终端执行成功,然后打开浏览器输入如下地址即可。
http://127.0.0.1:7860/
主界面
stable-diffusion-webui
的功能很多,主界面如下:
【区域1】:模型选择区
SD生成的图片和模型的关系非常大,不同的模型对应不同的图片风格,比如常见的二次元风格,真人风格,国风风格等。
我们在前面下载的就是这里需要使用的模型文件(stable-diffusion-webui\models\Stable-diffusion目录下的文件),模型又分基础模型和其他微调模型比如lora等,涉及的内容很多,后面再详细介绍。
【区域2】:主要的功能区
文生图(txt2img):根据提示词(Prompt)的描述生成相应的图片。
图生图(img2img):将一张图片根据提示词(Prompt)描述的特点生成另一张新的图片。
附加功能(Extras):额外的功能,比如图片的等比缩放,改变采样。
图片信息(PNG Info):展示图片的信息。如果图片是由AI生成的,会展示提示词以及模型相关参数信息。
模型合并(Checkpoint Merger):合并多个模型,由多个模型的权重比例来决定最终生成图片。
训练(Train):模型训练。
C站插件(Civitai Helper):C站模型插件,可以下载模型信息和介绍。
自定义插件(Ebsynth Utility、EasyPhoto、Image Browser)都是自定以安装的插件,可以理解为扩展功能,后面文章我再详细讲解。
Tag反推(Tagger):使用图片反向生成关键词、反推词。
设置(Setting) : SD Web UI界面和参数设置。
扩展(Extensions):插件扩展,提供SD插件安装载入入口。
【区域3】:提示词区
SD Web UI提供了2个提示词输入框,一个是正向提示词,一个是反向提示词。
正向提示词:你希望生成的图片中包含的信息使用的关键词。
反向提示词:你希望生成的图片中不包含的信息使用的关键词。
【区域4】:参数设置区
采样方法(Sample method):提供了Euler a、DPM++2Sa Karras等采样方法。
调度类型 (Schedule type):提供了Automatic、uniform、karras等调度类型,一般选Automatic就好了。
采样迭代步数(Sampling steps):数值越大图像越精细,一般设置在20-40区间。
高清修复(Hires fix):可以将低分辨率的照片调整到高分辨率。
细化器(Refiner): 可以在生成图的不同点切换模型产生效果。
宽度(Width):图片的宽度。
高度(Height):图片的高度。
提示词相关性(CFG Scale):决定图片自由度,数值越大,生成的图像会更符合提示词的要求。一般设置在7-10之间。也不建议设置太大。
随机种子(Seed):相当于图片的DNA,决定了画面的内容,一般设置为-1,表示随机生成,seed一样的情况下,可以生成比较相似的图片。
生成批次(batch count):用于控制每次生成多少批次的图片。
每批数量(batch size):用于控制每批生成多少张的图片数量。
自定义插件(ADetailer、Tiled Diffusion、ControlNet等下面的配置)是需要按需安装插件,后面会有文章介绍。
【区域5】: 功能操作区
结合1、2、3、4区域的设置,点击【生成】按钮,生成的图片在区域6展示。
【区域6】:生成图片区
用于展示最终生成的图片。以及图片的下载,打包等功能。
生成图
油画风格:
中国风:
欢迎大家持续关注微信公众号"壁虎说技术",需要更多高清无水印图片的可以去微信公众号,回复【壁纸】获取。