排除到底是怎么生效的
扩散模型每一步本来就算两次预测,一次带你的文字条件、一次不带任何条件,然后放大两者之差。你在反向框里填了字,就是把「不带条件」那一侧换成了第二个真实条件。模型不再是从「无所指」那边推开,而是从你写下的这段文字推开。
由此直接推出两件事。第一,效果和引导强度挂钩:引导为 1 时没有可放大的差,这个框写什么都不生效。第二,这个推力是全局的,它把整张图从模型空间的某一片区域推开,所以它擅长去掉一种「气质」,不擅长去掉左边那个花瓶。
哪些词值得占位置
只写你在这个模型上确实见过的问题。一份有用的清单是三到六个词,不是三十个。
- 反复出现的瑕疵。 多指、畸形手、水印、文字、jpeg 压缩痕迹
- 你没要的媒介。 明明写了照片却总出画作,就加上 illustration、3d render、cgi
- 权重自带的风格偏移。 很多模型会往二次元、过饱和、大虚化上漂,把这个漂移点出来是最省力的纠正
- 构图坏习惯。 模型老是替你把画面收紧,就写 cropped、out of frame、close-up
上面这份反向提示词写得故意很短。你自己那份也该这么写:加一个词,固定种子重跑一次,看得出变化才留下。
抄来的长串为什么没用
那些上百词的清单是 2023 年为 SD 1.5 攒的,之后被一路复制,没人再验证。它有两个毛病。
大部分词是空转的。这个模型在你这条提示词上从来不长出畸形肢体,那把它列出来除了吃 token 什么都没变。而没空转的那部分,往往在帮倒忙:诸如低反差、噪点、颗粒这类「画质词」,会悄悄把你在正向提示词里费劲要来的胶片感抹平。反向提示词的本质是减法,随手乱减只会让图更平、更灰、更没个性。
诚实的测试只要两分钟:拿你那份继承来的长串跑一次,清空再跑一次,种子相同。如果你分不出哪张是哪张,那它一直白带着。
视频,以及没有这个框的时候
视频里值得写的词是时间维度的,不是解剖维度的:闪烁、抖动、变形融化、画面扭曲、突然切镜、镜头晃动。这些才是真正反复出现的失败,也比物体级别的排除更吃得动。
不少托管模型压根没有这个字段。这不算退步,更像另一种设计取向:新一代文本编码器读句子已经足够好,正向提示词承担了更多,剩下的交给编辑步骤处理。如果你在一个没有反向提示词的模型上很想用它,通常正确的动作是把正向提示词删短,直到那个不想要的元素不再被它暗示出来。