模型与参数

反向提示词该写什么,不该写什么

又称 negative prompt, negative prompting, negative prompt examples, 负面提示词, 排除词

反向提示词是另一段文字,模型会被朝着它的反方向推,和正向提示词正好镜像。它压制风格、材质和反复出现的瑕疵很有效,但要把某个具体物体从画面某个具体位置抹掉,它基本不灵。

排除到底是怎么生效的

扩散模型每一步本来就算两次预测,一次带你的文字条件、一次不带任何条件,然后放大两者之差。你在反向框里填了字,就是把「不带条件」那一侧换成了第二个真实条件。模型不再是从「无所指」那边推开,而是从你写下的这段文字推开。

由此直接推出两件事。第一,效果和引导强度挂钩:引导为 1 时没有可放大的差,这个框写什么都不生效。第二,这个推力是全局的,它把整张图从模型空间的某一片区域推开,所以它擅长去掉一种「气质」,不擅长去掉左边那个花瓶。

哪些词值得占位置

只写你在这个模型上确实见过的问题。一份有用的清单是三到六个词,不是三十个。

  • 反复出现的瑕疵。 多指、畸形手、水印、文字、jpeg 压缩痕迹
  • 你没要的媒介。 明明写了照片却总出画作,就加上 illustration、3d render、cgi
  • 权重自带的风格偏移。 很多模型会往二次元、过饱和、大虚化上漂,把这个漂移点出来是最省力的纠正
  • 构图坏习惯。 模型老是替你把画面收紧,就写 cropped、out of frame、close-up

上面这份反向提示词写得故意很短。你自己那份也该这么写:加一个词,固定种子重跑一次,看得出变化才留下。

抄来的长串为什么没用

那些上百词的清单是 2023 年为 SD 1.5 攒的,之后被一路复制,没人再验证。它有两个毛病。

大部分词是空转的。这个模型在你这条提示词上从来不长出畸形肢体,那把它列出来除了吃 token 什么都没变。而没空转的那部分,往往在帮倒忙:诸如低反差、噪点、颗粒这类「画质词」,会悄悄把你在正向提示词里费劲要来的胶片感抹平。反向提示词的本质是减法,随手乱减只会让图更平、更灰、更没个性。

诚实的测试只要两分钟:拿你那份继承来的长串跑一次,清空再跑一次,种子相同。如果你分不出哪张是哪张,那它一直白带着。

视频,以及没有这个框的时候

视频里值得写的词是时间维度的,不是解剖维度的:闪烁、抖动、变形融化、画面扭曲、突然切镜、镜头晃动。这些才是真正反复出现的失败,也比物体级别的排除更吃得动。

不少托管模型压根没有这个字段。这不算退步,更像另一种设计取向:新一代文本编码器读句子已经足够好,正向提示词承担了更多,剩下的交给编辑步骤处理。如果你在一个没有反向提示词的模型上很想用它,通常正确的动作是把正向提示词删短,直到那个不想要的元素不再被它暗示出来。

支持该效果的模型

取自 ZOOOP 实时模型目录,新模型上架后自动出现在这里。

这个效果的提示词

一条能稳定出效果的起点。主体和场景可以换,技术性的那几句留着。

A ceramic teapot on a linen cloth, soft north window light, honest colour, 50mm

试一下:反向提示词

打开生成器,参数已经预填好。

常见问题

所有模型都支持吗?
不是。压制要靠引导强度大于 1,所以引导固定为 1 的蒸馏 / turbo 权重根本没有可压制的余量;很多托管的图像和视频接口也直接不给这个字段。没有它的时候,替代方案是把正向提示词写短,再补一次局部重绘或编辑。
到底该往里写什么?
只写你在这个模型上真的见过的翻车。图像通常是两三个瑕疵词,比如多指、水印;再加上你反复拿到但不想要的风格,比如明明要照片却总给插画。除此以外都是噪声。
为什么正向提示词里写「不要文字」没用,写在这里就有用?
因为文本编码器对否定没有可靠概念,「不要文字」是把「文字」这个概念塞进嵌入,往往还多出来一些。反向提示词这个字段不依赖编码器理解「不」,它是机制层面减掉一整个条件方向。
写得越长越好吗?
通常越长越差。每加一个词,输出就被从模型空间里更大的一片区域推开;网上流传的那种上百词长串,会连带把颜色、反差和细节一起拽下去。短而具体胜过长而照抄。
能给单个词加权重吗?
Stable Diffusion 一系的界面可以,语法类似 (blurry:1.3),把某个词推得更狠。但要省着用,大约超过 1.5 就会留下看得见的坑,比如脸为了躲开「模糊」而变得像打了蜡。
能把画面某个角落里的东西删掉吗?
基本不能。压制是全局的、不是局部的,它没有办法瞄准某一块区域。要删掉特定位置的东西是局部重绘的活:把那块涂成蒙版重跑,顺便还能指定那里该出现什么。

相关术语