嵌入,也称为文本反转,是在 Stable Diffusion 中控制图像样式的另一种方法。我们将回顾什么是嵌入,在哪里可以找到它们,以及如何使用它们。

什么是嵌入?
嵌入是文本反转的结果,文本反转是一种在不修改模型的情况下定义新关键字的方法。该方法之所以受到关注,是因为它能够将新的样式或对象注入到只有 3 -5 个样本图像的模型中。
文本反转是如何工作的?
文本反转的惊人之处不在于添加新样式或对象的能力——其他微调方法也可以做到这一点,或者做得更好。事实上,它可以在不更改模型的情况下做到这一点。
下面转载的原始研究文章中的图表说明了它是如何工作的。
首先,为新对象或样式定义一个不在模型中的新关键字。该新关键字将被标记化(由数字表示),就像提示中的任何其他关键字一样。
然后,将每个标记转换为唯一的嵌入向量,供模型用于图像生成。
文本反转可查找最能表示新样式或对象的新关键字的嵌入向量,而无需更改模型的任何部分。你可以把它看作是在语言模型中找到一种方法来描述新概念。
嵌入示例
嵌入可用于新对象。下面是一个注射玩具猫的例子。请注意,新概念(玩具猫)可以与模型中的其他现有概念(船、背包等)一起使用。
嵌入也可以是一种新样式。下面的示例演示了嵌入新样式并将样式转移到不同的上下文中。
在何处查找嵌入
下载嵌入的首选位置是 Civitai。使用文本反转进行筛选以仅查看嵌入。
Hugging Face 托管了 Stable Diffusion 概念库,该库是大量自定义嵌入的存储库。
如何使用嵌入
Web 界面
Stable Diffusion Conceptualizer 是在不下载嵌入的情况下尝试嵌入的好方法。
首先,确定要在概念库中测试的嵌入。假设您想使用这种 Marc Allante 风格。接下来,确定触发此样式所需的令牌。您可以在文件中找到它,即 。token_identifier.txt
<Marc_Allante>
输入提示
<Marc_Allante>
一只狗
为您提供独特的 Marc Allante 风格。
Web 界面的缺点是您不能将嵌入用于不同的模型或更改任何参数。
AUTOMATIC1111
在 AUTOMATIC1111 中使用嵌入很容易。
首先,从 Civitai 或 Concept Library 下载嵌入文件。
如果从概念库下载文件,则嵌入的文件名为 。确保不要右键单击并保存在下面的屏幕中。这将保存它链接到的网页。单击文件名,然后单击下一页上的下载按钮。learned_embedds.bin
接下来,将文件重命名为要用于此嵌入的关键字。它必须是模型中不存在的东西。 是一个不错的选择。marc_allante.bin
把它放在 GUI 工作目录的文件夹中:embeddings
stable-diffusion-webui/embeddings
重新启动 GUI。在启动终端中,您应该会看到如下消息:
总共加载了 1 个文本反转嵌入。
嵌入:marc_allante
使用文件名作为提示的一部分
例如,以下提示适用于AUTOMATIC1111。
(
marc_allante:1.2)
一只狗
我们得到具有预期样式的图像。
在AUTOMATIC1111中使用嵌入的快捷方式
嵌入即使差一个字母也不起作用。此外,您不能将针对 Stable Diffusion v1.5 和 v2 训练的嵌入使用,反之亦然——它们的语言模型不同。
您可能想知道您是否使用的是嵌入而不是关键字。这可能很难说,因为它的效果有时可能很微妙。
您应该使用 GUI 按钮插入它,而不是键入嵌入的文件名。单击 txt2img 或 img2img 页面上的 Textual Inversion 选项卡。选择要插入的嵌入。嵌入关键字应插入到提示中。
关于在AUTOMATIC1111中使用嵌入的说明
如果你注意提示,你会注意到我增加了触发关键字的强度。我发现有必要调整关键词的强度。这可能与 AUTOMATIC1111 加载嵌入的方式有关。marc_allante
您可能需要使用关键字强度才能获得所需的效果。下面是一个改变强度的示例,同时保持种子和其他所有内容相同。
更复杂的是,不同种子值所需的强度可能不同。
有用的嵌入
许多有用的嵌入都是负嵌入。将它们放在否定提示中。(非常重要!
噩梦
BadDream 是 DreamShaper 模型的负嵌入。
不切实际的梦想
UnrealisticDream 是写实风格图像的否定嵌入。您应该将它与现实视觉等现实模型一起使用。
这种负嵌入需要与 BadDream 一起使用,所以可以这样使用:
噩梦,不切实际的梦
易负
EasyNegative 是 Anything v3 和 OrangeMix 等动漫模型的负面嵌入。
我喜欢的嵌入
我可以尝试许多可用的嵌入。以下是我发现的一些我喜欢的。
wlop_style
如果您玩过 Stable Diffusion 基础模型,您会发现无论您多么努力,都无法生成 wlop 的风格。与自定义模型一起嵌入最终可以做到这一点。
wlop_style嵌入能够渲染艺术家 wlop 的一些漂亮的插图风格。它应该与 SirVeggie 的 wlop-any 自定义模型一起使用。(有关安装自定义模型的信息,请参阅本指南。
如果你尝试一下,你可能会发现它不起作用。您需要做的是调整提示强度。
AUTOMATIC1111的工作提示是
(wlop_style:0.6)(m_wlop:1.4)女人穿着连衣裙,完美的脸蛋,美丽的细腻的眼睛,长发,鸟儿
否定提示:
闭上眼睛,毁容,变形
wlop_style 是嵌入的关键字,m_wlop 是模型的关键字。
如果你没有得到风格,不要感到沮丧。尝试更改两个关键字的提示强度。某些对象可能不适用于嵌入。尝试 wlop 艺术作品中的一些常见对象。
库夫希诺夫
库夫希诺夫是俄罗斯的一幅插图。您可以将 kuvshinov 嵌入与 Stable Diffusion v1.4 一起使用。
提示:
(_kuvshinov:1),一个有着美丽细致的眼睛,突出头发的女人
否定提示:
毁容、变形
(注意,我已将嵌入重命名为_kuvshinov.bin
)
嵌入、Dreambooth 和超网络之间的区别
微调稳定扩散模型的三种常用方法是文本反转(嵌入)、dreambooth 和超网络。
嵌入定义了新的关键字来描述一个新概念,而无需更改模型。嵌入向量存储在 .bin 或 .pt 文件中。它的文件大小非常小,通常小于 100 kB。
Dreambooth通过对整个模型进行微调,注入了新概念。文件大小是 Stable Diffusion 的典型大小,约为 2 – 4 GB。文件扩展名与其它型号相同,ckpt。
超网络是附加到稳定扩散模型的去噪 UNet 的附加网络。目的是在不更改模型的情况下微调模型。文件大小通常约为 100 MB。
使用嵌入的优缺点
使用嵌入的优点之一是体积小。如果文件大小为 100 KB 或更小,则在本地存储中存储多个文件非常简单。由于嵌入只是新关键字,因此它们可以在同一图像中一起使用。
使用嵌入的缺点是有时不清楚它应该与哪个模型一起使用。对于动漫风格,请尝试将它们与 Anything v3 等动漫模型一起使用。
尽管具有尺寸优势,但嵌入可能比自定义模型更难使用。发现自己无法重现预期的效果是很常见的。
作者:Andrew
Andrew是一位经验丰富的工程师,专攻机器学习和人工智能。他热衷于编程、艺术、摄影和教育。他拥有工程学博士学位。
原文链接:如何在 Stable Diffusion 中使用嵌入 - Stable Diffusion Art (stable-diffusion-art.com)