在上一篇的文章中,我们讲解了Stable Diffusion提示词的高级用法,对于一些高级属性有了了解。如果有不记得的,可以再去看看———Stable Diffusion之提示词指南(二)。今天我们讲解一下负提示词。
负提示词
负向提示词:简单说就是告诉AI你想不要绘制什么,不要在画面中出现的内容。
可以看到在Web UI页面中负提示词也是和正提示词一样,有一个输入框,一般我们不输入也是可以的。
使用负面提示词是引导图像的另一种好方法,这里放的不是你想要的东西,而是你不想要的东西。它们不一定必须是物体,也可以是样式和不需要的属性。 (例如丑陋、变形等)
同时对于v2模型来说,使用负面提示词是必须的。如果没有它,图像看起来会远不如v1的图像。对于v1和SDXL模型来说,它们是可选的,但我经常使用它们,因为它们要么有帮助,要么无害。
比如使用通用的负提示词。
ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy, watermark, signature, cut off, low contrast, underexposed, overexposed, bad art, beginner, amateur, distorted face, blurry, draft, grainy
丑陋、平铺、手画得不好、脚画得不好、脸画得不好、出框、多余的肢体、毁容、变形、身体出框、解剖结构不良、水印、签名、切断、对比度低、曝光不足、曝光过度、不好艺术、初学者、业余、扭曲的脸、模糊、草稿、颗粒状
比如生成的图片:
使用负提示词
负提示词是让Stable Diffusion输出结果更符合要求的另一种方式。与需要绘制蒙版的不同,你可以使用负提示词并享受文本输入的所有便利。事实上,有些图像只能通过使用负提示词来生成。
比如下面的例子:
Portrait photo of a man
好的,我们得到了我们所期望的。毫不奇怪。不过,这些人看上去有些太严肃了。让我们试着把他们的胡子去掉,让它们看起来更亮丽一些。我们来尝试一下提示:
Portrait photo of a man without mustache
我们这里发现有问题。我们的胡子更加突出!这是怎么回事?罪魁祸首很可能是cross-attention未能将“没有”和“小胡子”联系起来。Stable Diffusion将提示词理解为“男人”和“小胡子”。这就是为什么你会看到他们两个。
那么我们能做些什么来生成没有胡子的男人呢?这是Stable Diffusion做不到的吗?答案就是使用负提示词。如果我们使用提示:
正提示词:
Portrait photo of a man
负提示词:
mustache
我们终于可以生成一些没有胡子的男人了!同样的使用v2模型您将得到类似的结果。
本例演示了使用否定提示的原理:
如果您看到不想要的内容,请将其放入否定提示中。
负提示词如何工作的
回想一下,在文本到图像调节中,提示词被转换为嵌入向量,然后将其馈送到 U-Net 噪声预测器。在这里实际上有两组嵌入向量,一组用于正面提示,另一组用于负面提示。
正面提示和负面提示是平等的。他们都有 77 个token。您始终可以将其中之一与另一个一起使用或单独使用。
负提示是在采样器中实现的,该算法负责实现反向扩散。要了解负提示如何工作的,我们首先需要了解在不使用负提示词的情况下采样是如何工作的。
无负提示词的采样
在Stable Diffusion的采样步骤中,算法首先在文本提示词的指导下通过条件采样对图像进行一点降噪。然后,采样器通过无条件采样对同一图像进行一点去噪。这完全是无指导的,就好像您不使用文本提示词一样。请注意,它仍然会扩散到一个像样的图像,例如下面的篮球或酒杯,但它可以是任何东西。实际完成的扩散步骤是条件采样和无条件采样之间的差异。重复此过程一定数量的采样步骤。
在没有负提示词的情况下,扩散步骤是朝着提示并远离随机图像的一步。
带负提示词的采样
负提示是通过劫持无条件采样来实现的。不使用生成随机图像的空提示,而是使用负提示。
当使用负面提示词时,扩散步骤是朝向正面提示并远离负面提示的步骤。
从技术上讲,积极的提示会将扩散引向与其相关的图像,而消极的提示则会将扩散引向与其相关的图像。请注意,稳定扩散中的扩散发生在潜在空间中,而不是图像中。图像空间中的上述图形仅用于说明目的。如果您对如何在代码级别实现它感兴趣,请参阅这篇精彩的文章。
采样空间
让我们考虑以下采样空间的图示。当我们使用提示“男人的肖像照片”时,Stable Diffusion会从所有男人的整个潜在空间中采样图像,无论有没有胡子。你应该得到有和没有胡子的男人的图像。
所有男人形象的空间。
当添加负提示词“小胡子”时,“有小胡子的男人”空格被排除。实际上,我们正在对没有胡子的男性的图像进行采样。
所以我们知道负提示会以一种单独修改肯定提示无法实现的方式删除对象或样式。它的工作原理是劫持每个采样步骤中的无条件采样,以便扩散偏离了负面提示中所描述的内容。
如何使用好负提示词
你能把你不想看到的东西放在负面提示词中。它为您提供了另一种控制文本到图像生成的方法。许多人将其视为 Stable Diffusion v1.5 中的可选功能。随着 Stable Diffusion v2 的发布,情况发生了变化。负面提示变得不可或缺。
移除物体
和前面的去掉“胡子”例子类似,假设您在雨天创作了一幅巴黎的画作。正提示词如下:
autumn in paris, ornate, beautiful, atmosphere, vibe, mist, smoke, fire, chimney, rain, wet, pristine, puddles, melting, dripping, snow, creek, lush, ice, bridge, forest, roses, flowers, by stanley artgerm lau, greg rutkowski, thomas kindkade, alphonse mucha, loish, norman rockwell.
Seed种子值如下:
1923936260
生成的图片中有很多人,如下图:
如果我想生成另一个,但街道空无一人。就可以使用指定图像的相同种子值,并在负提示中添加“people”。就会得到一张删除了大多数人的图像。
假如图片中的人还没删除完,那您也可以通过上节学习的语法强调负面提示来告诉稳定扩散要更加努力(people:1.3)。这告诉Stable Diffusion,关键字“people”现在重要性提高了30%。
修改图片
您也可以让Stable Diffusion以使用负提示进行细微的更改。比如您不想删除任何内容,只想对主题进行细微的更改。
让我们处理这个悟空图像:
看起来是在草原,并且天黑了,我们调整一下。添加草原,黄昏到负提示词中。
图片中的悟空看起来有点……不成熟,像小朋友一样,我们添加“未成年”这样的负提示词中让他看起来更像成年人。
负提示中带关键字切换
我们不想看到耳朵出现在图片中,同时在负提示词添加了ear,当我们逐渐添加强度时,画面可能会直接扭曲变形。
现在,如果你确实想使用高度强调 (ear:1.9)该怎么办 ? 这里有一个窍门。
你可以使用关键字切换 ,首先使用无意义的单词作为负提示词,然后 (ear:1.9) 在稍后的采样步骤中切换。
让我们选择 the 无意义、无用的负提示词。 你可以通过将其放入负提示词来验证它的无用性。 你将获得与未放置任何内容相同的图像。
现在我们用它作为负提示词:
[the: (ear:1.9): 0.5]
比如这里我使用 20 个采样步骤,这意味着 the 在步骤 1 —10 不会产生实际效果,而步骤 11 —20 中采用负提示词 (ear:1.9)。
修改样式
负提示词不仅对修改内容有用,对修改风格也有用。为什么要用负提示词来改变风格? 有时,在正提示词中添加太多只会让扩散器感到困惑。 想象一下有人让你同时去77个地方。 如果他们告诉你应该避免哪些区域,将会很有帮助 。
Sharpening
你可以在负提示词中使用“blurry”,而不是在正提示词中使用关键字 “sharp”、“focused” 。 这也许会让图像变得更清晰。
Photorealistic
在负提示中使用“painting”, “cartoon”也会使其更像照片。
比如黑神话-悟空,我们使用特定Lora加通用负提示词生成如下:
以上便是负提示词相关内容,关于如何训练自己的Lora,如何使用高级技巧等相关知识后面博主会逐步介绍,欢迎大家关注微信公众号"壁虎说技术",更多AI新技术,新点子在公众号第一时间更新。
参考
prompt-guide
how-to-use-negative-prompts