英文原文:https://stable-diffusion-art.com/how-negative-prompt-work/
负面提示是推动稳定扩散给你想要的东西的另一种方式。与需要绘制蒙版的修复不同,您可以使用负面提示并享受文本输入的所有便利。事实上,有些图像只能通过使用否定提示来生成。
在本文中,我们将回顾一个使用负面提示的简单示例。然后,您将了解负面提示如何在稳定扩散中发挥作用。
这是关于使用负面提示的两部分系列的第一部分。请参阅第二部分:如何使用负面提示,了解构建良好负面提示的指南。
一个简单的例子
仅积极提示
让我们尝试生成一些人的图像。这是正确的。我们即将进入未知领域……我正在使用 Stable Diffusion v1.5,并提示:
Portrait photo of a man.
好的,我们得到了我们所期望的。没有惊喜。不过,这些人看上去有些太严肃了。让我们试着把他们的胡子去掉,让它们看起来更亮丽一些。我们来尝试一下提示:
Portrait photo of a man without mustache.
我们这里有问题。我们的胡子更加突出!这是怎么回事?罪魁祸首很可能是交叉注意力未能将“without”和“mustache”联系起来。稳定扩散将提示理解为“男人”和“小胡子”。这就是为什么你会看到他们两个。
正向和负向提示
那么我们能做些什么来培养没有胡子的男人呢?这是稳定扩散做不到的吗?答案是使用否定提示。如果我们使用提示
Portrait photo of a man.
与负面提示一起
mustache
我们终于可以培养出一些没有胡子的男人了!使用 v2 模型您将得到类似的结果。
本例演示了使用负面提示的原理:
如果您看到不想要的内容,请将其放入否定提示中。
负面提示如何发挥作用?
回想一下,在文本到图像调节中,提示被转换为嵌入向量,然后将其馈送到 U-Net 噪声预测器。嗯,这还不是故事的全部。 (抱歉,这种情况已经发生过很多次了……)实际上有两组嵌入向量,一组用于正面提示,另一组用于负面提示。
积极和消极的提示是平等的。他们都有 77 个代币。您始终可以将其中之一与另一个一起使用或单独使用。
负面提示在采样器中实现,该算法负责实现反向扩散。要了解负面提示的工作原理,我们首先需要了解在不使用负面提示的情况下采样如何工作。
无负提示的采样
在稳定扩散的采样步骤中,算法首先在文本提示的指导下通过条件采样对图像进行一点降噪。然后,采样器通过无条件采样对同一图像进行一点去噪。这完全是无指导的,就好像您不使用文本提示一样。请注意,它仍然会扩散到一个像样的图像,例如下面的篮球或酒杯,但它可以是任何东西。实际完成的扩散步骤是条件采样和无条件采样之间的差异。重复此过程一定数量的采样步骤。
在没有负面提示的情况下,扩散步骤是朝着提示并远离随机图像的一步。
带负面提示的采样
负面提示是通过劫持无条件采样来实现的。不使用生成随机图像的空提示,而是使用否定提示。
当使用负面提示时,扩散步骤是朝向正面提示并远离负面提示的步骤。
从技术上讲,积极的提示会将扩散引向与其相关的图像,而消极的提示则会将扩散引向与其相关的图像。请注意,稳定扩散中的扩散发生在潜在空间中,而不是图像中。图像空间中的上述图形仅供说明之用。如果您对如何在代码级别实现它感兴趣,请参阅这篇精彩的文章。
采样空间
让我们考虑以下采样空间的图示。当我们使用提示“Portrait photo of a man”时,稳定扩散会从所有男人的整个潜在空间中采样图像,无论有没有胡子。你应该得到有和没有它的男人的图像。
所有男人形象的空间。
当添加负面提示“小胡子”时,“有小胡子的男人”空格被排除。实际上,我们正在对没有胡子的男性的图像进行采样。
概括
我希望本文能让您对负面提示及其工作原理有一个很好的概述。
否定提示会以一种单独修改肯定提示无法实现的方式删除对象或样式。它的工作原理是劫持每个采样步骤中的无条件采样。扩散偏离了负面提示中所描述的内容。
如果您想知道如何使用否定提示,请前往第二部分:如何使用否定提示。