← 返回题目列表

Negative Prompt 为什么能影响生成结果?

中等 第 23 / 25 题 更新于 2026/09/17

简化版

Negative Prompt 不是生成后的过滤规则,而是扩散采样时的一组对照条件。在 Classifier-Free Guidance 中,模型分别计算正向条件和负向条件下的去噪预测,再沿二者差值强化正向语义、远离负向语义。

它只能软性改变概率分布,不能保证某个元素绝不出现。负向词过多、互相冲突或 Guidance Scale 过高,可能损害构图、颜色和细节。对违法内容、品牌规范等硬约束,仍要配合输入审核、输出检测和人工复核。

“不要出现某物”对扩散模型而言通常是方向引导,不是布尔约束。

详细版

以噪声预测模型为例,CFG 可写成:

ε_guided = ε_neg + w × (ε_pos - ε_neg)

ε_pos 是正向 Prompt 条件下的预测,ε_neg 是负向 Prompt 条件下的预测,w 是 Guidance Scale。传统 unconditional CFG 中,ε_neg 使用空条件;提供 Negative Prompt 后,空条件被替换成“不希望出现的概念”。

例如正向条件是“棚拍白色运动鞋”,负向条件是“文字、水印、低清晰度”。采样轨迹会倾向与前者相关、远离后者相关的方向,但如果训练数据中“运动鞋”和品牌文字高度共现,负向词并不能提供硬保证。

用法可能收益典型风险
抑制内容减少水印、额外人物等概念纠缠导致主体也受损
抑制风格降低卡通、过饱和倾向画面变平、审美下降
抑制质量缺陷减少模糊、低质量先验抽象质量词效果不稳定
固定模板长列表快速复用经验与新模型、新场景冲突

面试中应强调:负向提示效果依赖文本编码器、模型训练数据、采样器、CFG 强度和正向 Prompt,必须用目标域样本做 A/B,而不能把社区“万能负面词”当成通用最佳实践。

完整版教学

1. Negative Prompt 位于生成链路的哪里

文本编码器先把正向和负向文本分别编码,去噪网络在每个时间步通常需要两次条件预测,再由 CFG 合成输出:

positive text -> text encoder -> c_pos --┐
                                         ├-> denoiser -> CFG combine -> scheduler
negative text -> text encoder -> c_neg --┘

因此它从第一步到最后一步都可能影响生成轨迹,而不是图片完成后再擦除对象。

2. CFG 差分为什么产生“远离”效果

差向量 ε_pos - ε_neg 表示两种条件对当前 latent 去噪方向的相对影响。w>1 会放大这一差异,使样本更符合正向条件且相对不符合负向条件。

当负向条件为空时,它是常规 CFG;当负向条件包含“blurry”时,基准方向变为模型对模糊图像的预测,差分就可能把轨迹推向更清晰的区域。

3. 为什么它不是逻辑上的 NOT

文本嵌入是连续向量,概念在训练数据中也高度相关。模型没有执行 if object == watermark: reject,而是在高维分布上调整概率。

例如“没有帽子的人”可能仍生成帽子,因为否定语法在图文训练数据中监督较弱;写入负向条件“hat”通常比完整否定句更直接,但仍不能保证零出现率。

需要 100% 满足的产品约束,应由检测、重采样、局部修复或人工审核完成,不能只依赖 Negative Prompt。

4. Guidance Scale 如何放大收益与副作用

w=1,输出接近正向条件预测;增大 w 会强化正负差分。过高时,模型可能被推离训练分布,出现过饱和、边缘发硬、纹理重复或构图僵化。

假设目标域在 w=5、7、9、12 做测试,不能只选 CLIP 分数最高者,还应统计伪影率和审美偏好。负向词增多后,最佳 w 也可能变化。

5. 为什么长负向词列表可能适得其反

文本编码器有上下文长度限制,长列表会截断尾部词;大量概念还会争夺注意力,导致单个约束变弱。互相矛盾的词,如同时排斥“soft light”和“hard light”,会让方向难以解释。

更可靠的做法是先从 3~8 个与已观察失败直接相关的概念开始,每增加一组都做消融测试。模型版本变化后要重新评测旧模板。

策略可解释性适用情况
单个概念最高,容易做因果对比定位某一种明确缺陷
短列表较高,可逐项消融已知的少量高频失败
通用长模板较低,概念容易冲突仅适合作为待验证起点

6. 质量词为什么有时有效、有时无效

“low quality”“bad anatomy”等词来自训练数据标签和社区生成习惯。若基础模型见过这些标签并建立了对应视觉分布,它们可能有效;若新模型的标注方式、文本编码器或训练策略改变,词义可能弱化。

同样的词在摄影、人像、动漫和产品图中作用不同。应把它们看成经验先验,而非模型 API 的保留关键字。

7. 与 Prompt 权重和分步 Guidance 的关系

部分 Pipeline 支持对 Negative Prompt 中的概念加权,或只在采样早期/后期启用 CFG。早期步骤更影响构图和全局语义,后期更影响纹理与局部细节。

early steps:  人数、主体、布局
middle steps: 属性、服饰、背景
late steps:   纹理、锐度、小型伪影

若想抑制额外人物,可重点关注早中期;只在末期增加负向强度通常难以改变已经形成的布局。

8. Negative Prompt 不能替代安全系统

负向词可能减少某类不良内容,但用户可以改写、模型可能误解,生成结果也可能漏检。生产安全链路至少包括:

Prompt 风险分类
  -> 策略决定允许/拒绝/降级
  -> 生成时软引导
  -> 图像安全分类与 OCR
  -> 高风险样本人工审核或拦截

审计日志应记录策略版本、模型版本和检测结果,但避免保存不必要的敏感原图。

9. 如何建立可重复的 A/B 评测

固定基础模型、采样器、步数、正向 Prompt 和初始 latent,只改变负向条件。对每个 Prompt 使用多个种子,避免偶然样本误导结论。

例如 200 个目标域 Prompt × 4 个种子,共 800 对样本,统计:目标缺陷出现率、主体保真率、CLIP 对齐、人类偏好与安全漏检率。还应单独观察肤色、年龄和文化元素切片,防止某些负向词引入偏见。

10. 排查“负向词不生效”的顺序

  1. 确认 Pipeline 是否真的把 negative embeddings 传给 CFG。
  2. 检查 Guidance Scale 是否大于有效阈值。
  3. 检查文本是否被 Tokenizer 截断。
  4. 用单个明确概念替换长列表做消融。
  5. 检查目标概念是否与正向主体强耦合。
  6. 更换多个种子,区分概率变化与单样本失败。
  7. 检查模型是否使用不同的 Guidance 或文本条件机制。

11. 常见误区与追问

  • 误区:Negative Prompt 是硬性黑名单。 它只改变采样概率,不能提供合规保证。
  • 误区:负向词越多越干净。 长列表会截断、冲突并损伤正向语义。
  • 误区:所有模型都认同一套“万能负面词”。 效果取决于训练标签、文本编码器和模型版本。
  • 误区:CFG 越高,负向约束越强且无副作用。 过高 CFG 会产生过饱和和伪影。
  • 误区:同一个种子对比一张图就足够。 需要多 Prompt、多种子和成对统计。
  • 追问:空 Negative Prompt 等于什么? 通常退化为以空条件作为基准的常规 CFG。
  • 追问:怎样禁止水印? 负向引导之外,还需 OCR/水印检测、重采样或局部修复。

12. 加强记忆

  1. 公式ε_neg + w(ε_pos-ε_neg)
  2. 本质:连续条件差分,不是逻辑 NOT。
  3. 权衡:更强 Guidance 可能更对齐,也可能更失真。
  4. 方法:短列表、逐项消融、多种子 A/B。
  5. 边界:硬安全约束必须由模型外检测和审核兜底。