关于AI绘画Stable diffusion的各种模型,看这篇就可以了! ...

打印 上一主题 下一主题

主题 1792|帖子 1792|积分 5376

各人好,我是步伐员晓晓
今天主要是帮各人梳理下Stable diffusion里面的各种模型,模型在Stable diffusion中占据着至关重要的地位,不仅决定了出图的风格,也决定了出图质量的好坏。
但在第一次接触SD的时间,我就被里面的模型搞到头大,不仅有多种模型后缀,模型之间也有很多种范例,假如是新手小白的话,在这一步就很轻易被搞晕。而在本期文章,我将帮你系统梳理SD的模型,信任不管是对于小白还是老手,都会有一定帮助!

一、从模型后缀说起

为了更好地理解模型,让我们先从模型的后缀说起。
在Stable diffusion中,有两种比力常见的模型后缀,分别是 .ckpt.safetensors
.ckpt 的全称是 checkpoint,中文翻译就是检查点,这是 TensorFlow中用于保存模型参数的格式,通常与 .meta 文件一起利用,以便恢复练习过程。
简单理解的话,.ckpt模型就好比我们打游戏时,每通过一关时对这一关的一个“存档”,因为你在练习模型时也是如此,没办法保证能一次就练习成功,中途是有可能因为各种因素失败的,所以可能在练习到20%时就存一次档,练习到40%时又存一次档,这也是为什么它叫 checkpoint 的一个缘故原由。
在提到.ckpt 模型时,我想趁便补充下.pt 模型,前面提到,.ckpt 是TensorFlow 用于保存模型参数的格式,而 .pt 则是 PyTorch保存模型参数的格式。TensorFlow 和 PyTorch都是比力出名的深度学习框架,只不过一个是Google发布的,另外一个是Facebook发布的。
PyTorch 保存模型的格式除了.pt 之外,另有 .pth 和.pkl。.pt 和 .pth 之间并没有本质的差别,而.pkl 只是多了一步用Python的 pickle 模块举行序列化。
讲完了 .ckpt 模型,那么就该说说 .safetensors 模型了。
之所以有 .safetensors 模型,是因为 .ckpt 为了让我们可以大概从之前练习的状态恢复练习,好比从50%这个点位重新开始练习,从而保存了比力多的练习信息,比如模型的权重、优化器的状态另有一些Python代码。
这种做法有两个题目,一是可能包含恶意代码,因此不建议从未知或不信托的来源下载并加载.ckpt 模型文件;二是模型的体积较大,一般真人版的单个模型的大小在7GB左右,动漫版的在2-5GB之间。
而 .safetensors 模型则是 huggingface 推出的新的模型存储格式,专门为Stable Diffusion模型设计。这种格式的文件只保存模型的权重,而不包含优化器状态或其他信息,这也就意味着它通常用于模型的最终版本,当我们只关心模型的性能,而不必要了解练习过程中的详细信息时,这种格式便是一个很好的选择。
由于 .safetensors 只保存模型的权重,没有代码,所以会更安全;另外由于保存的信息更少,所以它的体积也比 .ckpt 小,加载也更快,所以目前是比力推荐利用 .safetensors 的模型文件。
总的来说,假如你想在某个SD模型上举行微调,那还是得用 .ckpt 模型;但假如你只关心出图效果,那么利用 .safetensors 模型会更好!
二、从模型分类讲起

在Stable diffusion中,模型主要分为五大类,分别是Stable diffusion模型、VAE模型、Lora模型、Embedding模型以及Hypernetwork模型。
2.1 Stable diffusion大模型
这类模型俗称“底模”,对应下面这个位置。

这类模型代表了Stable diffusion的一个知识库,比如说我们练习大模型用的满是二次元的图片,那么它最终天生的图片效果也会趋于二次元;而假如练习的时间用的是真人图片,则最终出图效果则趋于真人。
由于这类模型包含的素材非常多,练习的时间也非常长,所以体积也比力大,一般在2GB以上,后缀的话就是上面提到的 .ckpt 和 .safetensors
2.2 VAE模型
VAE全称Variational autoenconder,中文叫变分自编码器,这种模型可以简单理解为起到一个滤镜的效果。在天生图片的过程中,主要影响的是图片的颜色效果。
一般来讲,在天生图片时,假如没有外挂VAE模型,天生的图片团体颜色会比力暗淡;而外挂了VAE模型的图片团体颜色会比力明亮。

注:左边是没有利用VAE天生的图片,右边是利用VAE天生的图片
不过必要留意的是,有一些大模型在练习的时间就已经嵌入了VAE的效果,所以即使没有利用VAE效果,出图的效果也不会那么暗淡。
另外,有时间利用VAE反倒会出现一个不好的效果,比如在末了一刻变成一张蓝色废图,这时间就必要把外挂VAE改成自动(Automatic)即可

注:像这种即为蓝色废图
2.3 Lora模型
Lora模型想必各人都常常看到了,LoRA的英文全称为Low-Rank Adaptation of Large Language Models,直译为“大语言模型的低阶适应”。这是一项由微软研究职员提出的大语言模型微调技能,简单来说,它的作用是让这些庞大的模型变得更加灵活和高效,可以大概在特定任务上举行优化(比如对样式举行一些修改),而不必要重新开始练习整个模型。
比如像下面这个Lora模型,就是在大模型的基础上增加一些森林水母发光的效果(就是我们不必为了增加这个效果,重新练习我们的大模型,因为练习大模型耗费时间很长,通过Lora就可以提高效率)

必要留意的是,Lora模型并不能单独利用,它必须与前面的大模型一起利用!
另外,由于Lora练习的图片较少,比如上面的Lora就是用100+图片练习的,所以它的体积一般不会很大,一般在几十到几百MB之间,这样大大节省了磁盘的占用量。
末了,有些Lora模型启用是必要触发词的(也就是在提示词那里加上这个触发词),比如上面的Lora触发词就是 jellyfishforest

2.4 Embedding模型
Embedding模型也称为textual inversion,即文本反转。在Stable Diffusion中,Embedding模型利用了嵌入技能以将一系列输入提示词打包成一个向量,从而提高图片天生的稳定性和准确性。
简单来说,假如我们要通过SD天生火影里面的鸣人形象,我们必要好几个提示词来举行形貌,比如什么外形,穿什么颜色的衣服,而Embedding就是将这一系列提示词打包成为一个新的提示词,假设叫鸣人。
这样后续我们只要引入这个 Embedding模型,然后输入鸣人提示词,就会天生我们想要的鸣人形象,提高了写提示词的效率!
由于Embedding模型只是将提示词整合了,所以它的体积非常小,一般在几十到几百KB之间。
举个例子,比如像这个 Embedding 模型,它描绘了一位叫Caroline Dare的美女

当我们输入触发词时,就会天生雷同的美女

固然天生的图片不是一模一样,因为这跟你利用的底模有关,但是比力明显的特征是一致的,比如白头发
2.5 Hypernetwork模型
Hypernetwork可以翻译为“超网络”,它是一种基于神经网络的模型,可以快速天生其他神经网络的参数,常应用于Novel AI的Stable Diffusion模型中。
Hypernetwork可以用来对模型举行微调,比如在Stable Diffusion这样的图像天生模型中,通过插入一个小型的超网络来修改输出风格,而不改变原始模型的核心结构
这个模型的作用其实和Lora模型功能有点重叠,所以在实际利用中,我个人用得比力少。
三、模型的剪枝

各人在下载模型的时间,可能还会看到两个版本,一个版本带 pruned,另外一个版本是带 pruned-emaonly,比如下面这个[1]

这是因为大模型在练习的时间会保存两组不同范例的权重:第一组取的是末了一次的权重,也就是只带 pruned 的模型

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美丽的神话

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表