如何在Stable Diffusion中使用嵌入向量

嵌入向量(Embedding),也称为文本反转(Textual Inversion),是在Stable Diffusion中控制图像风格的另一种方法。我们将介绍什么是嵌入向量,如何找到它们以及如何使用它们。

什么是嵌入向量?

嵌入向量是文本反转的结果,这是一种定义模型中新关键词而无需修改模型的方法。该方法引起了人们的关注,因为它能够通过仅使用3到5张样本图像,将新的风格或对象注入到模型中。

文本反转的工作原理是什么?

文本反转的神奇之处并不在于能够添加新的风格或对象,其他微调方法也能做到甚至更好。它的神奇之处在于,它可以在不改变模型的情况下实现这一点。

下面是原始研究文章中的图示,说明了它的工作原理。

图1

首先,您需要为新对象或风格定义一个不在模型中的新关键词。这个新关键词将会像提示中的其他关键词一样进行标记化(表示为一个数字)。

然后,每个标记将被转换为一个唯一的嵌入向量,供模型用于图像生成。

文本反转找到了最能代表新风格或对象的新关键词的嵌入向量,而不会改变模型的任何部分。您可以将其视为在语言模型内部找到一种描述新概念的方法。

嵌入向量的示例

嵌入向量可以用于新对象。下面是注入一个玩具猫的示例。请注意,新概念(玩具猫)可以与模型中的其他现有概念(船、背包等)一起使用。

图2

嵌入向量也可以用于新风格。下面的示例展示了嵌入一个新风格并将其转移到不同环境的情况。

图3

在哪里找到嵌入向量

Hugging Face主持了一个名为Stable Diffusion Concept Library的存储库,其中包含大量的自定义嵌入向量。

图4

Civtai是另一个可以浏览模型和嵌入向量的良好网站。使用"文本反转"进行筛选,只查看嵌入向量。

如何使用嵌入向量

Web界面

Stable Diffusion Conceptualizer是一种无需下载嵌入向量即可尝试它们的好方法。

首先,在Concept Library中确定您想要测试的嵌入向量。假设您想要使用这个Marc Allante风格。接下来,确定触发该风格所需的标记。您可以在名为token_identifier.txt的文件中找到它,即"<Marc_Allante>"。

放入提示中

<Marc_Allante> a dog

这样您就会得到独特的Marc Allante风格。

图5

Web界面的缺点是您不能将嵌入向量与不同的模型一起使用或更改任何参数。

AUTOMATIC1111

在AUTOMATIC1111中使用嵌入向量很容易。

首先,从Concept Library中下载一个嵌入向量文件。它的文件名是learned_embedds.bin。确保不要右键单击并保存在下面的屏幕上。那样会保存一个链接到网页的网页。点击文件名,然后在下一页中点击下载按钮。

图6

然后,将文件重命名为您想要将此嵌入向量与之配对的关键词。它必须是模型中不存在的关键词。marc_allante.bin是一个不错的选择。

将其放入GUI的工作目录中的embeddings文件夹中:

stable-diffusion-webui/embeddings

重新启动GUI。在启动终端中,您应该会看到类似以下的消息:

已加载了1个文本反转嵌入向量。嵌入向量:marc_allante

在提示的一部分中使用文件名

例如,以下提示将在AUTOMATIC1111上起作用。

(marc_allante:1.2) a dog

我们得到了具有预期风格的图像。

图7

在AUTOMATIC1111中使用嵌入向量的快捷方式

即使只有一个字母的差异,嵌入向量也无法使用。您也不能将v1的嵌入向量与v2一起使用,反之亦然——它们使用了两个不同的语言模型。

您是否曾经想知道如何确保您实际上正在使用嵌入向量?有时很难分辨,因为它的效果有时会很微妙。

在AUTOMATIC1111中有一个小技巧可以确保这一点。在垃圾桶按钮和复制按钮之间有一个看起来像小iPod的按钮(如果它是在您出生之前的某个时期...)。

图8

点击它,您将看到所有可用的嵌入向量。它们都在“文本反转”选项卡下面。

图9

点击其中任何一个都会将其插入到提示中。此功能对于消除确保您已正确输入嵌入向量魔术词的繁琐工作特别有用。

关于在AUTOMATIC1111中使用嵌入向量的注意事项

如果您注意提示,您会注意到我已经增加了触发关键词marc_allante的强度。我发现调整关键词强度是必要的。这可能与AUTOMATIC1111加载嵌入向量的方式有关。

您可能需要调整关键词强度以获得您想要的效果。下面是在保持种子和其他所有内容不变的情况下改变强度的示例。

图10

要进一步复杂化问题,所需的强度可能因不同的种子值而异。

我喜欢的一些嵌入向量

有许多可用的嵌入向量供我尝试。以下是我发现喜欢的一些。

wlop_style

如果您尝试使用Stable Diffusion基本模型,您会发现无论如何都无法生成wlop的风格。嵌入向量与自定义模型一起可以实现这一点。

wlop_style嵌入向量能够呈现艺术家wlop的一些漂亮的插图风格。它应与SirVeggie的wlop-any自定义模型一起使用(请参阅此指南以安装自定义模型)。

如果您尝试了一下,可能会发现它根本不起作用。您需要做的是调整提示的强度。

在AUTOMATIC1111上使用的一个可行提示是

(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是嵌入向量的关键词,m_wlop是模型的关键词。

如果您没有获得所需的风格,请不要灰心。尝试更改这两个关键词的提示强度。有些对象可能根本无法与嵌入向量配合使用。尝试一些wlop作品中常见的对象。

Kuvshinov

图12

Kuvshinov是一位俄罗斯插画师。您可以在Stable Diffusion v1.4中使用kuvshinov嵌入向量。

提示:

(_kuvshinov:1), a woman with beautiful detailed eyes, highlight hair

负面提示:

disfigured, deformed

(请注意,我已将嵌入向量重命名为_kuvshinov.bin)

嵌入向量、dreambooth和超网络之间的区别

有三种流行的方法可以对Stable Diffusion模型进行微调:文本反转(嵌入向量)、dreambooth和超网络。

嵌入向量是定义新关键词以描述新概念而不更改模型的方法。嵌入向量存储在.bin或.pt文件中。它的文件大小非常小,通常不到100 kB。

Dreambooth通过对整个模型进行微调来注入新概念。文件大小与Stable Diffusion的典型大小相同,约为2-4 GB。文件扩展名与其他模型相同,为ckpt。

超网络是附加到Stable Diffusion模型的去噪UNet的附加网络。其目的是在不更改模型的情况下进行微调。文件大小通常约为100 MB。

使用嵌入向量的优缺点

使用嵌入向量的优点之一是其大小较小。由于文件大小为100 KB或更小,可以很容易地在本地存储和传输嵌入向量文件。

另一个优点是使用嵌入向量时不需要重新训练模型。这使得它成为将新概念或风格注入现有模型的快速和灵活的方法。

然而,嵌入向量的一个缺点是它的效果可能不如其他微调方法。嵌入向量是通过学习嵌入向量文件中的特定关键词来工作的,这可能导致一些限制。此外,嵌入向量可能不适用于所有情况,特别是当需要更复杂的修改时。

标签: AI绘画教程, AI绘画教程网, AI绘画, Stable Diffusion, Stable Diffusion教程, Stable Diffusion社区, Stable Diffusion社群, Stable Diffusion中文社区, Stable Diffusion入口, Stable Diffusion注册, Stable Diffusion注册教程, Stable Diffusion共享账号