否定提示词是一种用于图像和视频生成系统的文本输入,用于指定模型应避免产生的概念、风格或视觉伪影,它与主要的描述性提示词一同使用,但独立于后者。普通提示词描述输出应包含什么,而否定提示词则描述输出不应包含什么。
工作原理
大多数否定提示词的实现依赖于一种称为无分类器引导的技术,在这种技术中,Diffusion model通过比较在有和没有提示词文本条件下的预测来生成图像,然后将输出引导至模型Latent space中朝向所述内容,并远离不希望的内容。当提供否定提示词时,模型执行类似的比较,将输出推离否定提示词中命名的概念,而不是仅推离无条件的基线。这使得否定提示词最自然地适用于基于扩散的系统,而在其他生成方法中则不太常见地暴露出来。
常见用途
否定提示词通常用于抑制图像生成器中反复出现的失败模式,例如扭曲的手和脸、多余的肢体、模糊或低分辨率的输出、水印、签名以及不需要的文本伪影。它们也用于风格化目的,例如排除基础Text-to-image generation提示词默认倾向于产生的某些颜色搭配、艺术风格或构图元素。一些社区维护着标准否定提示词短语的共享库,旨在广泛提高跨许多不同主题提示词的输出质量。
采用与界面
该技术通过围绕Stable Diffusion构建的开源界面(在此界面上,一个专用的否定提示词字段与主提示词框以及诸如ControlNet之类的其他控制工具一起暴露出来)而广为人知,这种模式后来被许多其他图像生成工具采用。一些商业平台,包括Midjourney,而是使用附加到普通提示词的特殊参数,而不是单独的输入字段,而另一些平台则折叠成更通用的提示词加权系统的限制提示词。随着较新生成模型在遵循复杂正向指令方面能力的提高,用户界面中单独否定提示词字段的地位相对于早期稳定扩散时期有所下降,尽管这一基本概念仍然是视觉生成中Prompt engineering的一个常见组成部分。
限制
否定提示词不保证排除所述概念;因为扩散模型以统计方式工作,而非通过硬约束,当否定和正向提示词描述模型学习分布中冲突或重叠的区域时,不受欢迎的元素仍可能出现。用太多术语过载否定提示词也可能降低整体图像质量,或推动输出向通用化、过度校正的风格发展,这导致许多实践者将否定提示词保持简短和具体,而不是尝试列举详尽。