LoRA模型是对standard checkpoint模型进行微小更改的小型Stable Diffusion模型。它们通常比检查点模型小10到100倍。这使得它们对拥有大量模特的人非常有吸引力。
这是一个教程,适用于以前没有使用过LoRA模型的初学者。您将了解什么是LoRA模型,在哪里可以找到它们,以及如何在AUTOMATIC111GUI中使用它们。然后你会在最后找到一些LoRA模型的演示。
什么是LoRA模型?
LoRA(Low-Rank Adaptation)是一种用于微调Stable Diffusion模型的训练技术。
但我们已经有了训练技巧,比如Dreambooth和textual inversion。LoRA有什么大不了的?LoRA在文件大小和训练能力之间提供了很好的折衷。Dreambooth功能强大,但会产生大的模型文件(2-7 GB)。文本反转很小(大约100 KB),但你不能做那么多。
LoRA介于两者之间:它们的文件大小是可管理的(2–200 MB),并且训练能力不错。
喜欢尝试模型的Stable Diffusion用户可以告诉你他们的本地存储充满的速度。由于体积太大,用个人电脑很难保存一个收藏品。LoRA是解决存储问题的绝佳方案。
与textual inversion一样,不能单独使用LoRA模型。它必须与模型checkpoint文件一起使用。LoRA通过对附带的模型文件应用小的修改来修改样式。.
LoRA是如何工作的?
LoRA对Stable Diffusion模型的最关键部分:cross-attention layers进行了微小的更改。它是模型中图像和提示词相遇的部分。研究人员发现,对模型的这一部分进行微调以实现良好的训练就足够了。交叉关注层是下面Stable Diffusion模型架构中的黄色部分。
LORA对cross-attention layers(U-Net噪声预测器的QKV部分)进行微调。(图来自Stable Diffusion paper。)
cross-attention layers的权重以矩阵形式排列。矩阵只是一堆按列和行排列的数字,就像Excel电子表格上一样。LoRA模型通过将其权重添加到这些矩阵来微调模型。
如果需要存储相同数量的权重,LoRA模型文件如何才能更小?LoRA的技巧是将一个矩阵分解为两个较小的(low-rank)矩阵。通过这样做,它可以存储更少的数字。让我们用下面的例子来说明这一点。
假设该模型有一个包含1000行和2000列的矩阵。这是要存储在模型文件中的2000000个数字(1000 x 2000)。LoRA将矩阵分解为1000乘2的矩阵和2乘2000的矩阵。这只是6000个数字(1000 x 2+2 x 2000),少了333倍。这就是为什么LoRA文件要小得多。
LoRA将一个大矩阵分解为两个小的低秩矩阵。
在这个例子中,矩阵的rank是2。它比原来的维数低得多,所以它们被称为低秩矩阵low-rank matrices。等级可以低至1。
但是这样耍花招有什么害处吗?研究人员发现,在cross-attention layers中这样做并不会对微调的能力产生太大影响。所以我们很好。
哪里可以找到LoRA模型?
Civitai上的LoRA模型。
Civitai拥有大量的LoRA模型。应用LORA过滤器仅查看LORA模型。你可能会发现它们都很相似:女性肖像、动漫、逼真的插图风格( female portraits, anime, realistic illustration styles)等等。
(请注意,Civitai上有很多NSFW的东西。如果你不想看到无法打开的东西,请确保打开NSFW过滤器…)
Hugging Face中的LoRA模型
Hugging Face是LoRA图书馆的另一个来源。你会发现更多种类的LoRA模型。但那里没有那么多的LoRA模型。他们的收藏品要小得多。
如何使用LoRA?
在本节中,您将找到在AUTOMATIC111StableDiffusionGUI中使用LoRA模型的说明。您可以在Windows、Mac或Google Colab上使用此GUI。
AUTOMATIC111本机支持LoRA。您不需要安装任何扩展。
步骤1:安装LoRA模型
要在AUTOMATIC111-webui中安装LoRA模型,请将模型文件放在以下文件夹中。
stable-diffusion-webui/models/Lora
步骤2:使用LoRA模型
要使用LoRA模型,请在提示中输入以下短语。
<lora:filename:multiplier>
filename
是LoRA模型的文件名,不包括扩展名(.pt
, .bin
, etc).
multiplier
是应用于LoRA模型的权重,默认值为1。将其设置为0将禁用该模型。
如何确定文件名是否正确?你不应该写这个短语,而应该点击模型按钮。
单击Lora选项卡。您应该会看到已安装的Lora模型的列表。单击要使用的。
LoRA短语将插入提示词中。
就是这样!
关于使用LoRA的注意事项
您可以调整multiplier来放大或缩小效果。设置multiplier0将禁用LoRA模型。您可以在0和1之间调整样式效果。
一些LoRA特接受了Dreambooth的训练。您需要包含一个触发关键字才能使用LoRA模型。您可以在模型的页面上找到触发关键字。
与embeddings类似,您可以同时使用多个LoRA模型。您也可以将它们与一起使用embeddings。
在AUTOMATIC111中,LoRA短语不是提示词的一部分。在应用LoRA模型后,它将被删除。这意味着您不能对它们使用类似[keyword1:keyword2:0.8]的提示词语法。
一些LoRA模型
以下是我对LoRA模型的偏见选择,
Shukezouma
Shukezouma LoRA 模型以时尚的中国水墨画为主题。Shukezouma的意思是这幅画的负空间(在中国画中常见)非常充足,以至于马可以穿过它。
将此LoRA与中国风格的模特郭峰一起使用。
触发关键字:shukezouma
提示词:
(shukezouma:0.5),<lora:Mohin_shukezouma:1>,中国画,半身,女性,完美对称的脸,详细的中国服装,山,花,1女孩,老虎
(shukezouma:0.5) ,<lora:Moxin_Shukezouma:1> , chinese painting, half body, female, perfect symmetric face, detailed chinese dress, mountains, flowers, 1girl, tiger
反向提示词:
毁容、丑陋、糟糕、不成熟
disfigured, ugly, bad, immature
Shukezouma LoRA 模型
高田明美(1980年代)风格
高田明美(),日本漫画家。如果你喜欢上世纪八九十年代的日本动漫,这很适合你。
与AbyssOrangeMix2模型一起使用
提示词:
takada akemi,Tifa lockhart饰演魔术师,最终幻想VII,1女孩,小胸脯,美丽的眼睛,棕色的头发,微笑,红色的眼睛,高层,钻石耳环,长发,侧分的头发,耳后的头发,上身,时尚的连衣裙,室内,酒吧1980年代(风格),绘画(中等),复古艺术风格,水彩(中等)<lora:akemiTakada1980Style_1:0.6>
takada akemi, Tifa lockhart as magician, Final Fantasy VII, 1girl, small breast, beautiful eyes, brown hair, smiling, red eyes, highres, diamond earring, long hair, side parted hair, hair behind ear, upper body, stylish dress, indoors, bar 1980s (style), painting (medium), retro artstyle, watercolor (medium) <lora:akemiTakada1980sStyle_1:0.6>
反向提示词:
(最差质量,低质量:1.4),(由不良艺术家绘制动漫:0.9),(不良艺术家绘制:0.9)、水印、文本、错误、模糊、jpeg伪影、裁剪、最差质量、低质量、正常质量、jpeg伪像、签名、水印、用户名、艺术家名称、不良解剖结构
(worst quality, low quality:1.4), (painting by bad-artist-anime:0.9), (painting by bad-artist:0.9), watermark, text, error, blurry, jpeg artifacts, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, artist name, bad anatomy
赛博朋克2077塔罗牌(Cyberpunk 2077 Tarot card)
这个LoRA模型产生了具有未来主义赛博朋克风格的半机械人和城市。
提示词:
赛博朋克,塔罗牌,特写,肖像,仿生身体,猫,年轻人,完美的人体对称脸,金属皮夹克,电路,背景中的城市街道,自然光,杰作<lora:cyberbunk2077Tarot_tarotCard512x1024:06>
cyberpunk, tarot card, close up, portrait, bionic body, cat, young man, perfect human symmetric face, leather metallic jacket, circuit, city street in background, natural lighting, masterpiece <lora:cyberpunk2077Tarot_tarotCard512x1024:0.6>
反向提示词:
(最差质量,低质量:1.4),(由不良艺术家绘制动漫:0.9),(不良艺术家绘制:0.9)、水印、文本、错误、模糊、jpeg伪影、裁剪、最差质量、低质量、正常质量、jpeg伪像、签名、水印、用户名、艺术家名称、不良解剖结构、大乳房
(worst quality, low quality:1.4), (painting by bad-artist-anime:0.9), (painting by bad-artist:0.9), watermark, text, error, blurry, jpeg artifacts, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, artist name, bad anatomy, big breast
总结
LoRA模型是checkpoint模型的小修改器。通过在提示中包含短语,您可以在AUTOMATIC111中轻松使用它们。
今天就到此为止!我将在以后的文章中告诉您如何训练LoRA模型。
以下是一些额外的阅读材料,供好奇的人阅读。
- Using LoRA for Efficient Stable Diffusion Fine-Tuning (Hugging Face blog).关于LoRA如何应用于Stable Diffusion的良好概述。
- LoRA: Low-Rank Adaptation of Large Language Models (2021). 本文首先提出了LoRA技术。(用language 模型)
- Github: Low-rank Adaptation for Fast Text-to-Image Diffusion Fine-tuning. 这是将LoRA应用于Stable Diffusion的初步工作。你会发现关于LoRA的优秀的技术描述。
《什么是LoRA模型,以及如何在AUTOMATIC111中使用它们》有2条评论