Stable Diffusion 提示词中的“BREAK”有什么用?

Digital Nomad
Sep 10, 2023

--

在艺术和AI生成图像的世界中,提示词(Prompt)起着至关重要的作用。特别是在使用Stable Diffusion等模型时,提示词的选择和排列方式可以极大地影响生成图像的质量和特点。

在reddit.com上看到有个帖子,作者在提示词中用了一个我以前没有注意过的关键词“BREAK”。他的​提示词是这样的:

absurdres, highres, ultra detailed, (1girl:1.3), kawaii, BREAK, expressive brush strokes, ink wash, gradation, , poetic atmosphere, delicate balance, fluid motion

这是他生成的画面。

“BREAK”在这里有什么用?

我做了一番简单的研究学习,稍稍总结下,和大家分享。

BREAK的基本特性

“BREAK”是一个特殊的关键词,用于分割提示词。一个基础的提示词最多可以有75个令牌(tokens),如果你输入的提示词超过这个长度,SD会根据需要添加其他的75令牌组,并全部使用它们。然而,在每一组内,第一个令牌具有额外的重要性,如果一个多词短语因为在75个令牌处被分割而断开,模型将无法以相同的方式理解它。
“BREAK”用于强制调整Token数至75个。当使用BREAK时,模型会将其视为一个无意义的填充字符,并强制转移到下一个序列。这意味着,如果你的提示词超过了75个Token,BREAK会强制模型将其分割成多个序列,并分别进行处理。

BREAK的应用场景

强制截断: 当你的提示词过长,而你只想关注前75个Token,可以使用BREAK进行截断。
分段处理: 如果你有多个独立但相关的提示词,可以用BREAK将它们分开,以便模型能更精确地理解每个部分。

BREAK的影响

位置与顺序:BREAK的位置在提示词序列中起到关键作用。如果它位于序列的开始,那么前75个Token将被优先处理。如果它位于序列的末尾,那么最后75个Token将被优先处理。

上下文考量:BREAK的效果也受到上下文的影响。即使在75个Token内,也必须在上下文中正确地放置才能获得所需的效果。

多序列处理:如果一个提示词序列超过75个Token,BREAK将强制模型将其分割为多个75-Token的序列,并分别进行处理。

如何运用BREAK

精确控制:如果您希望某一部分的提示词具有更高的优先级,可以通过在该部分前或后插入”BREAK”来实现。

避免混乱:在一个复杂的提示词序列中,使用”BREAK”可以避免模型产生不必要的混乱或误解。

优化性能:对于超过75个Token的长序列,使用”BREAK”可以优化模型的性能和输出质量。

实验与观察

在实验中,无论是将BREAK放在提示词的开始还是末尾,其效果都相同。这表明BREAK的位置并不影响其功能。但值得注意的是,BREAK的使用会影响模型对其他提示词的解释和权重。

下面两张图,分别是用了“BREAK”和没有“BREAK”的效果。

BREAK是一个功能强大的工具,能有效地控制Token的数量和序列的切换。然而,其使用需要谨慎,以免影响模型对其他提示词的解释和权重。

--

--

Digital Nomad

专注于AI和区块链对我们生活的影响。我通过博客和社交媒体分享我的见解和应用技巧,包括ChatGPT、AI绘画,AI视频制作等。关注我,一起探索AI的无限可能!