本文将介绍 Stable Diffusion 使用的主要模型及其用法。
1 模型下载
Stable Diffusion (简称SD) 模型主要从 Huggingface, github, Civitai 下载。
Huggingface:主要提供主流 AI 绘画模型下载。
github:也有一些小模型放在 github 下供下载使用。
Civitai:AI艺术共享平台,可下载海量SD开源模型(推荐)。
2 模型类别
SD 支持不同类型的模型,比如:基础模型,Lora,ControlNet,VAE,CLIP等。模型扩展名一般为ckpt,safetensors,pt,pth等。下面介绍几种最重要的模型。
3 基础模型
3.1 介绍
基础模型一般包含完整的 TextEncoder、U-Net、VAE。
模型大小一般为2-8G,真实风格模型相对2D风格模型更大。
目前最新的模型是 SDXL 1.0(约占8G显存),最常用的模型是 SD 1.5(约占4G显存)。
需要手工下载后,复制到 models/Stable-diffusion/ 目录下,才可识别和使用。
3.2 推荐
- v1-5-pruned-emaonly:默认模型,偏真实风格,可从 huggingface 下载
- bluePencilXL_v010.safetensors:最新版 SDXL 1.0 模型
- anythingV3_fp16.ckpt:2D 动画风格
- Counterfeit:接近真实场景的二次元风格(2.5D),氛围感很好,老式动慢风格
4 Lora模型
4.1 介绍
Lora是一种较小的绘画模型,一般体积在几十到几百兆左右。它是对大模型的微调。生成图片时只能选择一个大模型,但可选择多个Lora。
Lora解决的问题是:单个模型难以覆盖不同风格,而基础模型又太大,普通设备无法训练,Lora可分别针对:主体,风格,动作训练增补模型,与基础模型配合使用,以改进具体功能。
Lora只需要少量的数据就可以训练(如几十张标注的相片),比训练大模型要简单很多,用户可以用自己的数据训练Lora,也可在 Civitai 进行下载,下载后放到 SD的 models/Lora/ 目录下即可使用。
4.2 推荐
- Detail Tweaker LoRA:增强/减少细节,保持整体风格/人物; 可结合各种基础模型(包括动画和现实模型)。
- GHIBLI_Background:吉卜力风格(类似宫崎骏动画风格),治愈系画风的建筑和景观(背景)。
5 VAE模型
5.1 介绍
VAE是变分自编码器,负责将潜空间的数据转换为正常图像。
在SD中切换 VAE,可看作切换滤镜,它在生成图片过程中配合主模型使用,起到调色和微调的作用,比如有些模型色调不够清晰明亮,可考虑加 VAE 一起使用。
切换模型时,对应的VAE有时会自动下载;手动下载VAE模型,需要复制到 models/VAE/ 目录下,然后在 WebUI 界面上设置:Setting选项卡->左边选 Stable Diffusion->SD VAE
5.2 推荐
mse-840000:通用 VAE
ClearVAE:动漫 VAE
6 ControlNet模型
6.1 介绍
AI 绘图的主要问题是画面不可控,只能通过多次尝试,再筛选的方式出图,很难达到可预期的稳定输出,ControlNet 主要解决这一问题。其主原理是:利用额外网络对基础模型做微调。
ControlNet可以提取图片的线稿、人的资态、风景等难以用 prompt 描述的元素。在生成图片时叠加各种效果,比如给图A中的人设置图B中的姿式。它包括预处理和叠加模型,预处理是从图片A中提取行为,叠加模型将该行为应用到图片B的生成中。相对于图生图,ControlNet 提供的信息更为纯粹。
具体原理见论文 2023年2月 :https://arxiv.org/abs/2302.05543,
6.2 安装
- 安装 ControlNet 插件(目前星最高的插件):
WebUI界面->Extension 选项卡->Available选项卡->Load from按钮->Order选按Star排序->安装 sd-webui-controlnet 插件,正常安装后在 Installed选项卡中可以看到 - 下载模型
预处理器会自动从 HuggingFace 下载;模型需要另外安装,模型下载地址:
https://huggingface.co/lllyasviel/ControlNet/tree/main/models
目前有8个模型可供下载,每个模型大小都在5G左右,和之前相比做了一些合并。
6.3 主要功能
- 资态约束:Openpose(可根据参考图设置:表情,手指、身体资态)
- 空间深度约束:Depth(对空间场景深度的还原,含人体)
- 抽取线条和还原:Canny 用于还原外型特征;SOFTEDGE/HED 整体边缘检测,识别大概轮廓;比CANNY约束小;SCIBBLE 涂鸦,比SOFTEDGE更自由,可根据简单涂鸦生成图片(注意:画线稿时不要加阴影,如果使用白底黑线,需要用 invert 预处理器)
- 物品类形约束:Seg
- 风格约束:Normal
6.4 使用方法
- 上传图片
- 在界面左下点开 ControlNet 折叠界面
- 上传待参考的图片(如上传一张线稿)
- 选择模型
- 选择类型 Control Type,比如 canny,选中后列出该类别对应的所有可用的预处理和模型
- 选预处理 Preprocess,比如 canny,预处理器将从图片中读取信息;然后点右边的爆炸图标,可预览其处理效果。
- 选择 ControlNet 模型,比如 control_sd15_canny,用于生成图像。
- 设置参数
- 注意一定要勾选 Enable,否则 ControlNet 不起作用。
- 生成图
- 点击右上角的生成按钮生成图像
6.5 注意
- 测试 ControlNet 效果时,需要固定 Seed,以保证每次生成的基础图是一样的
- 第一次使用涂鸦功能时,可尝试xdog模式,它的效果更好
7 其它模型
其它模型,比如恢复面部细节的 CodeFormer,利用图片生成提示词的 CLIP & DeepBooru,一般第一次使用时都会自动下载模型到 models 的对应子目录中,需要耐心等待。如果下载不成功,请根据后台提示下载文件,然后复制到对应目录。
8 注意事项
- 如果想真正把SD应用起来,一定要使用 Lora和ControlNet,Lora负责指定具体的主体和场景,ControlNet负责更好地控制画面。
- 基础模型需要与其上的 VAE,Lora 版本一致,否则无法使用
- 基础模型与其上的 VAE,Lora 风格尽量(动画/真实)一致
- 使用 ControlNet 时被修改的图片和参考图片最好风格一致,动画人物和真人比例不一致可能造成问题
9 参考
SDXL模型b站视频
耗时7天,终于把15种ControlNet模型搞明白了!
Stable Diffusion进阶教程!超详细的 ControlNet 实用入门指南