在Stable Diffusion中如何使用embeddings

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

什么是embeddings

嵌入是文本反转的结果,这是一种在模型中定义新关键字而不修改它的方法。该方法之所以受到关注,是因为它能够将新样式对象 注入到具有少至 3 -5 个样本图像的模型中。

文本反转如何工作?

文本反转的惊人之处不在于添加新样式或对象的能力——其他微调方法也可以做到这一点或做得更好。事实上,它可以在不 更改模型的情况下这样做。

下面转载的原始研究文章中的图表说明了它是如何工作的。

通过文本反转为新标记 S* 找到新嵌入。

首先,您为新对象或样式定义一个不在模型中的新关键字 该新关键字将像提示中的任何其他关键字一样被标记化 (由数字表示)。

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

文本反转找到最能代表新样式或对象的新关键字的嵌入向量,而无需更改模型的任何部分。您可以将其视为 语言模型中寻找一种方法来描述新概念。

嵌入的例子

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

嵌入也可以是一种新的样式。下面的示例显示了嵌入新样式并将样式转移到不同的上下文。

在哪里可以找到embeddings

Hugging Face 托管稳定扩散概念库,这是一个包含大量自定义嵌入的存储库。

稳定的扩散概念库。

Civtai是另一个很棒的网站,您可以浏览模型,包括embeddings。** textual inversion** 进行过滤以仅查看嵌入。

如何使用嵌入

网页界面

Stable Diffusion Conceptualizer是一种无需下载即可试用嵌入的好方法。

首先在概念库中确定要测试的embeddings。假设您想使用这种Marc Allante 风格。接下来,确定触发此样式所需的 token。 您可以在token_identifier.txt文件中找到它 ,即<Marc_Allante> .

放入prompt

 <Marc_Allante> a dog

赋予您独特的 Marc Allante 风格。

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

AUTOMATIC1111

在 AUTOMATIC1111 中使用嵌入很容易。

首先,从概念库下载一个嵌入文件。它是名为learned_embedds.bin 。确保不要右键单击并保存在下面的屏幕中。这将保存它链接到的网页。单击文件名,然后单击下一页中的下载按钮。

接下来,将文件重命名为您想要使用 此 embeddings的关键字。它必须是模型中不存在的东西。marc_allante.bin 是个不错的选择。

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

stable-diffusion-webui/embeddings

重新启动图形用户界面。在启动终端中,您应该会看到如下消息:

Loaded a total of 1 textual inversion embeddings.
Embeddings: marc_allante

使用文件名作为提示的一部分

例如,以下提示适用于 AUTOMATIC1111。

(marc_allante:1.2)  a dog

我们将得到

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

你有没有想过如何确保你确实在使用嵌入?这可能很难说,因为它的效果有时可能很微妙。

AUTOMATIC1111 中有一个小技巧可以确保这一点。在垃圾桶和复制按钮之间有一个按钮,看起来像一个小 ipod。

image

单击它,您将看到所有可用的嵌入。它们都在 Textual Inversion 选项卡下。

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

在 AUTOMATIC1111 中使用 embeddings的注意事项

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

您可能需要使用关键字强度来获得您想要的效果 。下面是在保持种子和其他一切相同的情况下改变强度的示例。

调整关键字强度以获得您想要的效果。
更复杂的是,不同种子值所需的强度可能不同。

我喜欢的一些 embeddings

有许多可用的 embeddings,我无法一一尝试。这里有一些我发现我喜欢的。

wlop_style

如果你玩过 Stable Diffusion 基础模型,你会发现无论你怎么努力,都无法生成wlop的样式。Embedding 与自定义模型一起最终可以做到这一点。

wlop_styleEmbedding 能够渲染艺术家 wlop 的一些漂亮的插图风格.它应该与 SirVeggie 的wlop-any自定义模型一起使用。

直接下载链接——wlop_style embedding

直接下载链接 – wlop-any 模型

如果您尝试一下,您可能会发现它根本不起作用。您需要做的是prompt权重

prompt :
(wlop_style :0.6) (m_wlop:1.4) woman wearing dress, perfect face, beautiful detailed eyes, long hair, birds
Negative prompt:
closed eyes, disfigured, deformed

wlop_style 是embedding的关键字,m_wlop 是模型的关键字。

如果您不了解风格,请不要感到沮丧。尝试改变这两个关键字的提示强度。有些对象可能根本不适用于嵌入。尝试 wlop 艺术作品中的一些常见对象。

Kuvshinov

Kuvshinov 是俄罗斯的插图。您可以将kuvshinov 嵌入与 Stable Diffusion v1.4一起使用。

直接下载链接

Prompt:

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


Negative prompt:

disfigured, deformed

注意: 我已将嵌入重命名为_kuvshinov.bin

embedding、Dreambooth 和 hypernetwork之间的区别

微调稳定扩散模型的三种流行方法是:textual inversion(embedding)、dreamboot和hypernetwork。

embedding 定义了新的关键字来描述一个新的概念而不改变模型。embedding存储在 .bin 或 .pt 文件中。它的文件非常小,通常不到 100 kB。

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

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

使用embedding的优点和缺点

使用嵌入的优点之一是它的体积小。对于 100 KB 或更小的文件大小,将多个文件存储在本地存储中很简单。因为embedding只是新的关键字,所以它们可以在同一张图像中一起使用。

使用嵌入的缺点是有时不清楚它应该与哪个模型一起使用。