如何使用负向提示

负向提示是一种额外的方式,可以引导稳定扩散模型为您提供您想要的结果。与需要绘制掩模的修复不同,您可以使用负向提示并享受文本输入的便利。事实上,有些图像只能通过使用负向提示来生成。

本文将演示使用负向提示的简单示例,并解释负向提示在稳定扩散模型中的工作原理。

这是有关负向提示的两部分系列文章的第一部分。请参阅第二部分:《如何使用负向提示》以获取有关构建良好的负向提示的指南。

一个简单的示例

只使用正向提示

让我们尝试生成一些男人的图像。没错,我们要进入一个未知的领域...我正在使用稳定扩散 v1.5 和提示

Portrait photo of a man.

图1

好了,我们得到了预期的结果。没有什么意外。虽然这些男人看起来有点太严肃了。让我们尝试去掉他们的胡须,让他们看起来轻松一些。让我们尝试以下提示

Portrait photo of a man without mustache.

图2

这里出现了问题。我们得到了更加突出的胡须!怎么回事?罪魁祸首可能是“交叉注意力”未能将“without”和“mustache”关联起来。稳定扩散将提示理解为“man”和“mustache”。这就是为什么你同时看到了两者。

正向和负向提示

那么,我们应该怎么做才能生成没有胡须的男人呢?稳定扩散不能做到吗?答案是使用负向提示。如果我们使用以下提示

Portrait photo of a man.

以及负向提示

mustache

图3

我们最终可以生成一些没有胡须的男人!使用v2模型也会得到类似的结果。

这个示例演示了使用负向提示的原则:

If you see something you don’t want, put it in negative prompt.

负向提示如何工作?

回想一下,在文本到图像生成中,提示会被转换为嵌入向量,然后传递给U-Net噪声预测器。嗯,并非如此简单。(对不起,这已经发生了很多次...)实际上,有两组嵌入向量,一组用于正向提示,另一组用于负向提示。

正向和负向提示的地位是相等的。它们都有77个标记。您可以始终使用一个而不使用另一个。

负向提示是在采样器中实现的,采样器负责实施逆扩散算法。为了理解负向提示的工作原理,我们首先需要了解在不使用负向提示的情况下如何进行采样。

不使用负向提示进行采样

在稳定扩散的采样步骤中,算法首先使用条件采样对图像进行轻微的去噪,这是根据文本提示进行的。然后采样器使用无条件采样对相同的图像进行轻微的去噪。这是完全没有引导的,就好像您没有使用文本提示一样。请注意,它仍然会扩散到一个像篮球或酒杯一样的像素良好的图像,但可能是任何东西。实际完成的扩散步骤是条件采样和无条件采样之间的差异。这个过程会重复进行一定数量的采样步骤。

图4

使用负向提示进行采样

负向提示是通过劫持无条件采样来实现的。不是使用空白提示生成随机图像,而是使用负向提示。

图5

从技术上讲,正向提示将扩散引导到与之关联的图像,而负向提示将扩散从之关联的图像中引导出来。请注意,稳定扩散中的扩散发生在潜在空间中,而不是图像中。上述的图像空间仅用于说明目的。如果您对如何在代码层面上实现它感兴趣,请参阅这篇很棒的文章。

采样空间

让我们来考虑一下采样空间的以下示例。当我们使用提示“Portrait photo of a man”时,稳定扩散会从包含有胡须和没有胡须的所有男性的整个潜在空间中采样图像。您应该会得到有胡须和没有胡须的男性的图像。

图6

当添加负向提示“mustache”时,将排除“有胡须的男性”空间。实际上,我们正在从没有胡须的男性中采样图像。

总结

希望本文能够让您对负向提示是什么以及它是如何工作有一个良好的概述。

负向提示可以以一种通过调整正向提示无法实现的方式去除对象或风格。它通过在每个采样步骤中劫持无条件采样来实现,使扩散远离负向提示中描述的内容。

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