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