嵌入embeddings,也称为文本反转textual inversion,是在Stable Diffusion中控制图像风格的另一种方法。我们将介绍什么是embedding、在哪里可以找到它们以及如何使用它们。
什么是embedding?
embedding是文本反转的结果,这是一种在模型中定义新关键字而不修改模型的方法。该方法之所以受到关注,是因为它能够仅仅使用 3 -5 个样本图像就可以向模型注入新的样式或对象。
文本反转(textual inversion)是如何工作的?
文本反转的惊人之处不在于添加新样式或对象的能力——其他微调方法也可以做到这一点,甚至更好。重点是,它可以在不改变模型的情况下做到这一点。
下面转载的原始研究文章中的图表说明了它的工作原理。
首先,定义一个不在新对象或样式的模型中的新关键字 。该新关键字将被标记化(由数字表示),就像提示词中的任何其他关键字一样。
然后,每个标记都会转换为唯一的嵌入向量,供模型用于图像生成。
文本反演找到最能代表新样式或对象的新关键字的嵌入向量,而不更改模型的任何部分。您可以将其视为在语言模型中寻找一种方法来描述新概念。
Embedding的示例
Embedding可用于新对象。下面是注入玩具猫的示例。请注意,新概念(玩具猫)可以与模型中的其他现有概念(船、背包等)一起使用。
Embedding也可以是一种新的样式。下面的示例显示了嵌入新样式并将样式传输到不同的上下文。
在哪里可以找到Embeddings
Hugging Face 托管Stable Diffusion概念库,它是大量自定义Embeddings的存储库。
Civtai是另一个很棒的网站,您可以浏览模型,包括Embeddings。使用文本反转(textual inversion)进行过滤以仅查看嵌入。
如何使用embeddings
网页界面
Stable Diffusion Conceptualizer是无需下载即可尝试embeddings的好方法。
首先在概念库中确定要测试的嵌入。假设您想使用这种Marc Allante 风格。接下来,确定触发此样式所需的令牌。您可以在文件中找到它token_identifier.txt
,该文件是<Marc_Allante>
.
输入提示
<Marc_Allante>
一只狗<Marc_Allante>
a dog
为您带来独特的 Marc Allante 风格。
Web 界面的缺点是您无法使用不同模型的嵌入或更改任何参数。
AUTOMATIC1111
在 AUTOMATIC1111 中使用嵌入非常简单。
首先,从概念库下载嵌入文件。它的文件名为learned_embedds.bin
. 确保不要右键单击并保存在下面的屏幕中。这将保存它链接到的网页。单击文件名,然后单击下一页的下载按钮。
接下来,将文件重命名为您想要使用此Embedding的关键字。它必须是模型中不存在的东西。marc_allante.bin
是一个不错的选择。
将其放入GUI 工作目录中的文件夹中:
stable-diffusion-webui/embeddings
重新启动图形用户界面。在启动终端中,您应该看到类似以下的消息:
总共加载了 1 个文本反转嵌入。
Loaded a total of 1 textual inversion embeddings.
嵌入:marc_allante
Embeddings: marc_allante
使用文件名作为提示的一部分
例如,以下提示适用于 AUTOMATIC1111。
(
(marc_allante:1.2) a dogmarc_allante:1.2)
一只狗
我们得到了具有预期风格的图像。
在 AUTOMATIC1111 中使用Embedding的快捷方式
即使少了一个字母,嵌入也不起作用。此外,您不能将 v1 嵌入与 v2 一起使用。
您是否想知道如何确保您确实在使用嵌入?这可能很难说,因为它的影响有时是微妙的。
AUTOMATIC1111 中有一个小技巧可以确保这一点。垃圾桶和复制按钮之间有一个按钮,看起来像一个小 ipod。
单击它,您将看到所有可用的嵌入。它们都位于“文本反转(Textual Inversion)”选项卡下。
单击其中任何一个都会将其插入到提示词中。此功能对于消除确保正确输入Embedding触发词的繁琐工作特别有用。
在 AUTOMATIC1111 中使用Embedding的注意事项
如果你留意提示,你会发现我增加了触发关键字marc_allante的权重
。我发现有必要调整关键词强度。这可能与 AUTOMATIC1111 加载嵌入的方式有关。
您可能需要调整关键字强度才能获得您想要的效果。下面是一个在保持种子和其他所有内容相同的情况下改变强度的示例。
更复杂的是,不同的种子值所需的强度可能不同。
一些我喜欢的Embedding
有很多可用的Embedding,我无法尝试。这是我发现的一些我喜欢的。
wlop_Style
如果您使用过 Stable Diffusion 基础模型,您会发现无论您如何努力都无法生成wlop的风格。。
wlop_style嵌入能够渲染出和艺术家 wlop 风格一样的漂亮插图。它应该与 SirVeggie 的wlop-any自定义模型一起使用。(有关安装自定义模型的信息,请参阅本指南。)
直接下载链接 – wlop_style Embedding
如果你尝试一下,你可能会发现它根本不起作用。您需要做的就是调整提示词强度。
AUTOMATIC1111 的工作提示词是
(wlop_style :0.6) (m_wlop:1.4) 穿着裙子的女人,完美的脸,美丽细致的眼睛,长发,鸟
(wlop_style :0.6) (m_wlop:1.4) woman wearing dress, perfect face, beautiful detailed eyes, long hair, birds
反向提示词:
闭着眼睛,毁容,变形
closed eyes, disfigured, deformed
wlop_style是Embedding的关键字,m_wlop是模型的关键字。
如果您没有得到这种风格,请不要感到沮丧。尝试更改两个关键字的提示强度。
库夫希诺夫Kuvshinov
库夫希诺夫是俄罗斯插画师。您可以将kuvshinov 嵌入与 Stable Diffusion v1.4结合使用。
提示词:
(_kuvshinov:1),一个拥有美丽细致的眼睛、突出头发的女人
(_kuvshinov:1), a woman with beautiful detailed eyes, highlight hair
反向提示词:
毁容的,变形的
disfigured, deformed
(注意我已将Embedding重命名为_kuvshinov.bin
)
embedding、dreambooth 和超网络(hypernetwork)之间的区别
微调Stable Diffusion模型有三种流行的方法:文本反转(Embedding)、dreambooth和超网络hypernetwork。
Embedding定义了新的关键字来描述新概念而不改变模型。嵌入向量存储在 .bin 或 .pt 文件中。它的文件大小非常小,通常小于100 kB。
Dreambooth通过对整个模型的微调,注入了新的概念。文件大小是Stable Diffusion的典型文件大小,大约 2 – 4 GB。文件扩展名与其他型号相同,ckpt。
超网络hypernetwork是附加到Stable Diffusion模型的去噪 UNet 上的附加网络。目的是在不改变模型的情况下微调模型。文件大小通常约为 100 MB。
使用Embedding的优点和缺点
使用Embedding的优点之一是其尺寸小。文件大小为 100 KB 或更小,可以轻松地将多个文件存储在本地存储中。因为嵌入只是新的关键字,所以它们可以在同一图像中一起使用。
使用Embedding的缺点是有时不清楚它应该与哪个模型一起使用。如果训练师没有说,你可以从v1.4或v1.5开始。您可能还想包括VAE,看看这是否有什么不同。对于动漫风格,训练师使用像Anything v3这样的动漫模型并不罕见。
一般来说,我发现使用Embedding比使用自定义模型更困难一些。我无法在下载的许多嵌入中重现演示样式。确实,如果我不断调整关键字的强度,我可能会到达那里,但实际上人们在几次尝试后就会继续前进。
《Stable Diffusion中embeddings介绍和使用》有2条评论