首页 > AI资讯 > 工具使用 > StableDiffusionComfyUI基础教程(七)如何使用三大微调模型:Embeddings、Lora、Hypernetwork

StableDiffusionComfyUI基础教程(七)如何使用三大微调模型:Embeddings、Lora、Hypernetwork

新火种    2024-01-17

前言:

在我们绘图过程中我们用到了 Checkpoint 模型和 VAE 模型,但是还有另外三种可以辅助我们出图的模型没有给大家介绍,他们分别是 Embeddings(嵌入)、Lora(低秩适应模型)、Hypernetwork(超网络)这三种模型;

在开始讲解这三个模型之前我们一定要记住不止 Checkpoint(大模型)分 SD1.4、SD1.5、SDXL1.0 等基础算法型号,这三个模型同样也分,我们在使用时要选择对应基础算法型号才能正常使用。

今天我们就讲讲这三种模型分别是什么原理、有什么作用和怎么使 用。

一、Embeddings

1. 原理介绍(如果只想知道怎么使用可以跳过原理介绍这段):

①Embeddings 翻译成中文就是“嵌入”,他在深度学习领域通常指的是“嵌入式向量”,这些向量是高维空间中的点,能够代表输入数据(如文本或图像)的关键特征。

②我们输入的关键词能被识别,正是因为 Text Encoder 将自然语意的 Prompt 转成了数值向量,这些数值向量他们不仅包含数值信息,还包含数据之间的关系和结构信息。

③想象一下,你正在向别人描述独角兽长什么样,你可能会说‘它像马,有白色的毛发,前额上有一只角’。即使对方从未见过独角兽,通过这些关键描述,他们也能在脑海中形成一个独角兽的形象。在深度学习中,Embeddings 模型的作用类似于这种描述。当我们给计算机系统输入一个词,比如‘独角兽’,Embeddings 模型会生成一个数值向量,这个向量包含了与‘独角兽’相关的所有关键特征。这样,即使计算机系统‘没见过’独角兽,它也能通过这个向量理解‘独角兽’这个是什么。

④通过上面的例子可以看出他只是在描述什么是“独角兽”,并将其转换成一种数值表示形式,并不直接参与绘画。所以他没有改变大模型的权重参数,也就只能用来固定元素或画面特征,这也是他的局限性。

2. 安装位置:

①我们在部份模型下载网站很有可能看不到 Embeddings 模型,但是他会以 Textual Inversion(文本倒置)这个名字出现,他们是同一个东西。

②模型存放位置在“ComfyUI_windows_portable\ComfyUI\models\embeddings”目录下,如果你是和 Web UI 共用的模型,那就放在“sd-webui\embeddings”目录下。

3. 作用及如何使用:

①此模型通常用来嵌入元素特征(比如人物特征)、负面信息(用来减少图的崩坏几率)

②使用 Embeddings 模型我们只需要在提示词输入框输入他的“触发词”就可以,一般我们在下载模型的时候会看到作者给出的触发词。

③是不是输入触发词比较麻烦,我们需要记住每个模型的触发词。我们可以通过一个插件去选择 Embeddings 模型,还记得我第一节课给大家推荐的“小瑞士军刀美化辅助(ComfyUI-Custom-Scripts)”插件吗,在输入框输入“embeddings”中的任意一个字母或“模型名称的任意一个字母”即可在弹窗中选择模型,并且点击模型右侧的“ℹ️”还可以查看模型的相关信息及 C 站跳转链接。

④我们用《电锯人》中 Makima 的 Embeddings 模型来对比一下不使用和使用的效果(相同关键词和种子下使用)

⑤很明显的看出下面这张图带有 Makima 的特征,当然和真正的 Makima 还是有一定区别的,要想让图像更加符合人物特征还是要用 Lora 模型。

⑥我们用的最多的还是用来解决 AI 不会画手或肢体错乱,颜色混杂等痛点,这时候就有大佬整合一些 AI 画错了的图像(比如:六指,畸形的图像,三条腿......),训练成了 Embeddings 模型也叫 Negative Embeddings(负面词嵌入)模型,我们只需要把他输入到负向关键词里面,在绘图时让他禁止绘制此类案例就可以了。

⑦常用的 Negative Embeddings(负面词嵌入)模型:

a. SD1.5:badhandv4、EasyNegative、ng_deepnegative_v1_75t

b. SDXL1.0:unaestheticXL_AYv1

⑧我们来看一下效果(相同关键词和种子下使用),我们很明显的看出有一定的效果

⑨当然加了 Embeddings 也并不意味着就能解决这些问题,它只是提高了生成好图片的概率,但是总比不加时效果好了很多。

⑩在使用 Embeddings 模型时,我们可以多个 Embeddings 模型 进行组合使用,会让我们得到意想不到的效果;

⑪常用的 Embeddings 模型我也会放在本节课的文件里面,比如对年龄、性别的控制模型。

二、Lora

1. 原理介绍(如果只想知道怎么使用可以跳过原理介绍这段):

①LoRA:Low-Rank Adaptation Models(低秩适应模型),他的核心思想是在不显著改变原有模型结构的情况下,通过添加一些额外的、低秩(即简化的)矩阵来调整模型的权重,从而提升模型的性能或适应性。

②在微调 Stable Diffusion 模型的情况下,相较于大模型的 Dreambooth(训练方法,输出 Checkpoint 模型)的全面微调模型方法,Lora 的训练参数可以减少很多倍,对硬件性能的要求也降低很多。

③想象一下你有一辆车,这辆车已经可以满足你的日常需求,比如上班通勤。但有一天,你决定参加一场越野赛车比赛。你知道你的车在原有状态下无法应对越野赛的挑战,但你也不想换一辆新车。这时,你可以选择对你的车进行一些改装,比如换上越野轮胎、增强悬挂系统,这样你的车就能适应越野赛的环境。

④在这个例子中,你的原始车辆就像是一个已经训练好的神经网络模型,它在大多数情况下都能很好地工作。然而,当面对新的或特殊的任务(比如越野赛)时,它可能需要一些调整才能更好地适应。LoRA(Low-Rank Adaptation)模型的作用就像是对车辆进行的这些特定改装。通过在原有模型上添加低秩矩阵(相当于对车辆的特定部分进行改装),我们可以使模型更好地适应新的任务,而不需要完全重新设计或训练一个新模型。

2. 安装位置:

模型存放位置在“ComfyUI_windows_portable\ComfyUI\models\loras”目录下,如果你是和 Web UI 共用的模型,那就放在“sd-webui\models\Lora”目录下。

3. 作用及如何使用:

①通常 Lora 模型用来指定目标特征(比如:人物、动作、年龄、服装、材质、视角、风格等);

②在使用上比较简单,“右键-新建节点-加载器-LoRA 加载器”;

③看到这个节点我们应该能猜到怎么连接吧,左侧的“模型/CLIP”和“Checkpoint 加载器”连接,右侧的“模型/CLIP”分别和“K 采样器”、“CLIP 文本编码器”连接。

④这时候我们会发现个问题,有两个“CLIP 文本编码器”(正向和负向)啊,我们连哪个,还是都连。经过测试只对正向关键词有效果,也就是说,我们可以两个都连接,也可以只连正向关键词对应的“CLIP 文本编码器”。

⑤我们选择个 Lora 模型 试一下效果,我以原神中的角色 芭芭拉 为例:

⑥是不是知道怎么使用了,但是我们在 Web UI 上可以设置 Lora 模型 的权重和使用多个 Lora 模型对吧,一个个来说,我们先说怎么设置权重;

⑦在“LoRA 加载器”节点上除了选择模型外是不是还有两个可以设置参数的地方,模型强度、CLIP 强度。至于我们设置哪个参数能达到控制权重的效果,完全取决于模型的训练方式。所以我们在不知道受哪个参数影响的情况下,我们可以对两个参数都进行调节,而 Web UI 上是把两个参数整合在一起了。

⑧至于多个 Lora 模型那就更简单了,我们在这个“LoRa 模型加载器”后面再连一个就可以了;

⑨是不是已经学会了怎么使用 Lora 模型了,但是我们使用多个 Lora 模型 的时候就会让流程图更复杂、更乱,调节权重也比较麻烦,我们可以使用一个插件帮我们解决。

⑩efficiency-nodes-comfyui(效率节点)

⑪我们先看一下怎么使用,直接把三个节点都加载出来“右键-新建节点-效率节点-堆栈- LoRA 堆”、“右键-新建节点-效率节点-效率加载器”、“右键-新建节点-效率节点-采样-K 采样器(效率)”。

⑫先看“LoRA 堆”节点我们可以看到有三类可调节的地方;

a. 输入模式:和控制权重有关,在这个节点我们可以通过调节一个参数就能控制权重了,如果我们把输入模式改为高级,Lora 权重就会分成模型强度、CLIP 强度;

b. Lora 数量:用来调节我们使用几个 Lora 模型的,当前数值是 3,我们就有三个 Lora 可选;

c. Lora 选择和权重就不用说了吧。

⑬效率加载器,我们需要操作的地方有:大模型选择、VAE 模型选择、Lora 模型(不使用选无,如果只使用一个就可以在这个节点选择,多个情况下就使用我们上面说的 Lora 堆节点)、正反提示词、宽高、批次;

⑭K 采样器基本上一样,没什么大的区别。

⑮是不是在这三个节点上就很明显的看出减少了很多的连接,我还是以芭芭拉和冰箱贴纸两个 Lora 为例进行连接;

⑯是不是简单了很多,这个插件可不止用来帮我们解决 Lora 模型的连接的问题,他能帮我们简化很多节点的连接,包括我们下节课要讲的多个 ControlNet 使用,也能减少连接步骤。

三、Hypernetwork

1. 原理介绍(如果只想知道怎么使用可以跳过原理介绍这段):

①这个,,,现在用的很少了,我们简单说一下。Hypernetwork 也叫超网络,他的原理是在扩散模型的基础上新建一个神经网络来调整模型参数,就是因为这个原因才叫做超网络模型。

②他在效果上和 Lora 类似,但是因为训练难度大,应用范围小,所以逐渐被 Lora 替代。

2. 安装位置

模型存放位置在“ComfyUI_windows_portable\ComfyUI\models\hypernetworks”目录下,如果你是和 Web UI 共用的模型,那就放在“sd-webui\models\hypernetworks”目录下。

3. 作用及如何使用:

①大多用来控制图像风格;

②在使用上他和 Lora 有些类似,“右键-新建节点-加载器-超网络加载器”;

③可以看到,“超网络加载器”相比“LoRa 加载器”少了 CLIP 的连接,我们只把他串联在“Checkpoint 加载器”和“K 采样器”之间就可以。

④下面我使用一个 Chibi 风格(日语中翻译为小矮子、小家伙)的超网络模型演示一下(相同关键词和种子下)。

总结这节课十分的简单,我们每一个微调模型都能多个叠加使用,并且这三类可以同时使用;虽然给大家介绍了“效率节点”,但是他不是万能的,我们搭建一个复杂的工作流还是需要了解出图的逻辑。
相关推荐
免责声明
本文所包含的观点仅代表作者个人看法,不代表新火种的观点。在新火种上获取的所有信息均不应被视为投资建议。新火种对本文可能提及或链接的任何项目不表示认可。 交易和投资涉及高风险,读者在采取与本文内容相关的任何行动之前,请务必进行充分的尽职调查。最终的决策应该基于您自己的独立判断。新火种不对因依赖本文观点而产生的任何金钱损失负任何责任。

热门文章