LoRA 大模型微调的利器
LoRA 模型是小型的 Stable Diffusion 模型,它们对 checkpoint 模型进行微小的调整。它们的体积通常是检查点模型的 10 到 100 分之一。因为体积小,效果好,所以 lora 模型的使用程度比较高。
这是一篇面向从未使用过 LoRA 模型的初学者的教程。你将了解 LoRA 模型是什么,在哪里找到它们,以及如何在 AUTOMATIC1111 GUI 中使用它们。然后,你将在文章末尾找到一些 LoRA 模型的演示。
LoRA 模型是什么?
LoRA(Low-Rank Adaptation)是一种微调 Stable Diffusion 模型的训练技术。
虽然我们已经有像 Dreambooth 和文本反转这样的训练技术。那么 LoRA 有什么用呢?
LoRA 实际上可以看做是 Dreambooth 和文本反转 embeddings 的折中方案。Dreambooth 功能虽然强大,但模型文件会比较大(2-7 GB)。文本反转非常小(约 100 KB),但能做的事情比较少。
LoRA 介于两者之间。它的文件大小更容易管理(2-200 MB),并且训练能力相当不错。
因为 checkpoint 比较大,所以硬盘空间存储会是一个问题。而 LoRA 是解决存储问题的优秀方案。
像文本反转一样,你不能单独使用 LoRA 模型。它必须与模型检查点文件一起使用。LoRA 通过对配套的模型文件进行小的修改来改变风格。
LoRA 是定制 AI 艺术模型的绝佳方式,而不会占用太多本地存储空间。
LoRA 如何工作?
LoRA 对 Stable Diffusion 模型中最关键的部分进行小的修改:交叉注意力层。研究人员发现,微调这部分模型就足以实现良好的训练。交叉注意力层是下面 Stable Diffusion 模型架构中的黄色部分。
交叉注意力层的权重以矩阵的形式排列。矩阵只是按列和行排列的一堆数字,就像 Excel 电子表格上一样。LoRA 模型通过将自己的权重加到这些矩阵上来微调模型。
如果 LoRA 模型需要存储相同数量的权重,它们的文件怎么会更小呢?**LoRA 的技巧是将矩阵分解成两个更小的(低秩)矩阵。**通过这样做,它可以存储更少的数字。让我们通过以下示例来说明。
假设模型有一个 100 行 100 列的矩阵。那是 10000 个数字(100x 100)需要存储在模型文件中。LoRA 将矩阵分解成一个 1000x2 矩阵和一个 2x100 矩阵。那只有 400 个数字(100 x 2 + 2 x 100,如果矩阵够更大的话,LoRA 模型会减少的更多。这就是为什么 LoRA 文件要小得多的原因。
在这个例子中,矩阵的秩是 2。它比原始尺寸低得多,所以它们被称为低秩矩阵。秩可以低至 1。
这种操作必定会带来数据上的缺失,但是在交叉注意力层来说,这些损失是无伤大雅的。所以 Lora 这种做法是可行的。
在哪里找到 LoRA 模型?
Civitai
寻找 LoRA 的首选地点是 Civitai。该网站托管了大量 LoRA 模型的集合。应用 LORA 过滤器以仅查看 LoRA 模型。不过里面的大多数模型都是:女性肖像,动漫,现实主义插图风格等。
Hugging Face
Hugging Face 是另一个 LoRA 库的好来源。你会发现更多种类的 LoRA 模型。但那里的 LoRA 模型可能没有 C 站多,并且也不太直观。因为没有图片预览。
如何使用 LoRA?
这里,我将介绍如何在 AUTOMATIC1111 Stable Diffusion GUI 中使用 LoRA 模型。
AUTOMATIC1111 原生支持 LoRA。你不需要安装任何扩展。
第 1 步:安装 LoRA 模型
要在 AUTOMATIC1111 webui 中安装 LoRA 模型,请将模型文件放入以下文件夹。
stable-diffusion-webui/models/Lora
第 2 步:在提示中使用 LoRA
要在 AUTOMATIC1111 Stable Diffusion WebUI 中添加带权重的 LoRA,请在提示或否定提示中使用以下语法:
<lora: name: weight>
name 是 LoRA 模型的名称。它可以与文件名不同。weight 是应用于 LoRA 模型的权重。默认值为 1。将其设置为 0 将禁用模型。
那么怎么知道 lora 的名字是什么呢?
其实我们并不需要手动输入 lora 的名字,我们只需要点击下面的 lora 标签:
你应该看到一个已安装的 LoRA 模型列表。单击你想要使用的模型。
LoRA 短语将被插入到提示中。
就是这样!
使用 LoRA 的注意事项
你可以调整乘数以增强或调整效果。将乘数设置为 0 将禁用 LoRA 模型。你可以在 0 和 1 之间调整风格效果。
一些 LoRA 模型是使用 Dreambooth 训练的。你需要包括一个触发关键词才能使用 LoRA 模型。你可以在模型页面上找到触发关键词。
类似于嵌入,你可以同时使用多个 LoRA 模型。你也可以将它们与嵌入一起使用。
在 AUTOMATIC1111 中,LoRA 短语不是提示的一部分。在应用 LoRA 模型后,它将被删除。这意味着你不能使用像[keyword1:keyword2: 0.8]这样的提示语法来使用他们。
实用的 LoRA 模型
这里介绍一些在实际应用中比较实用的 Lora。
add_detail
谁不想要 AI 图像中更多的细节?细节调整器允许你增加或减少图像中的细节。现在,你可以调整你想要的细节量。
使用正 LoRA 权重来增加细节,使用负权重来减少细节。
add_saturation
这个 lora 可以给图片添加一些饱和度,效果如下:
add_brightness
这个 lora 可以用来控制图片的亮度:
总结
LoRA 模型是 checkpoint 模型的小型修改器。你可以通过在提示中包含一个短语轻松地在 AUTOMATIC1111 中使用它们。
我将在以后的文章中告诉你如何自己来训练一个 LoRA 模型。
评论