虽然充斥着大量超现实主义赛博朋克隐喻,这依然是一片森林。从理论上来说,要改进上述图像,一个很流行的技巧是纳入更抽象的不良图像概念,如模糊和马赛克。但是,这些 negative prompt 是否比其他“成分”(如 4k hd)更好呢?negative prompt 如何与那些 positive promt addition 相互作用?我们来进一步实际测试一下。negative prompt 和 positive prompt 会碰撞出什么火花?这里插句题外话。有种名为 textual inversion 的技术(可供文本编码器学习特定对象或风格,可以在 prompt 中轻松调用)在 Stable Diffusion 2.0 中同样适用,尽管由于文本编码器不同(更大,嵌入是 1024D 而非 768D),每个 textual inversion 嵌入都必须重新训练,但在其他方面表现相同。SD1.X 中的一种常见风格是 “Midjourney” 风格(见下图),有种过度幻想的美学意味。我还训练了 <midjourney> token 的新版本(参见:https://huggingface.co/minimaxir/midjourney_sd_2_0)。
此外, textual inversion 或许还可以创新地运用于negative prompt。Redditor Nerfgun3 为 SD1.X 训练了一个“否定嵌入”,具体来说就是通过将通常的negative prompt 用作 positive prompt 来生成合成图像数据集,然后在其上训练 textual inversion 嵌入。我做了一些调整来再现这个过程,改进了合成数据集,进而训练出一个新的 <wrong> token。现在我们对 positive prompt addition(positive token)与negative prompt(negative token)进行交叉测试,看看negative prompt 的影响力有多大。以下是要测试的 prompt 列表,其中 positive prompt 为绿色,negative prompt 为红色:
例如,Stable Diffusion 2.0 的一项测试输入可能是「cyberpunk forest by Salvador Dali, in the style of <midjourney>」以及一个negative prompt「in the style of <wrong>」分别对应绿色 “TOKEN” prompt 标签和红色“TOKEN” 标签。此外,每个单独生成的图像将以相同的初始潜态开始,同时进行 seeded 调度。这样能更清楚地显示negative prompt 的影响,因为在恒定初始潜态下保持相同 prompt 可以使生成的图像成分在negative prompt 改变的情况下保持不变。现在总算可以开始了。那就让我们以 Steve Jobs 的头像为基本 prompt 开始吧,相当简单。base prompt: Steve Jobs head, seed: 59049两个 prompt addition 都改变了风格;base prompt 生成的是卡通图像;写实的 prompt addition 使其更像是 3D 渲染,而 Midjourney token 又使其成为一种艺术手法。然而,当加入negative prompt,每张图像都更清晰,模糊度降低,色调呈中性,皮肤细节也更丰富。值得一提的是, <wrong> token 要优于较小的negative prompt。再来看一个经典的图像生成:用 original DALL-E 演示的著名牛油果扶手椅,怎么样?
base prompt: an armchair in the shape of an avocado. an armchair imitating an avocado., seed: 59049
有趣的地方在这儿,positive 文本 prompt addition 完全破坏了原始 prompt 意图,而每个negative prompt 却更加精准地完善了相应图像(包括整个牛油果!)演示都很不错,我们再次回到达利风格的赛博朋克森林: base prompt: cyberpunk forest by Salvador Dali, seed: 59049在这个示例中,两个 positive prompt 都抹杀了达利的风格,倾向于更写实的森林,随后又为negative prompt 所强化。在原始 prompt 下,negative prompt 更能突显达利的艺术风格。这个例子充分说明,positive prompt addition 并不一定就是好的。negative prompt 能否帮助 AI 生成美味食物的图像?就像 DALL-E 2 可以实现的那种?我们看能不能生成一个汉堡:
baseprompt:adelicioushamburger,seed:19683
这个示例相当清楚地展示了negative prompt 对得出最终结果大有帮助;使用两个 token 的结果输出逼近 DALL-E 2 的质量!Stable Diffusion 2.0 另一个有意思的地方是文本渲染效果更好;小字不一定完全清晰,但大字更容易辨认。或许 Stable Diffusion 2.0 可以生成一篇《纽约时报》(NYT)头版文章来描绘机器人霸主的崛起。
base prompt: an evil robot on the front page of the New York Times, seed: 19683
尽管潜在输入固定,但 Stable Diffusion 2.0 还是生成了很多种不同类型的邪恶机器人,报纸版式可以说很 NYT。如此怪异的仅由negative prompt 文本生成的图像表明一种非常罕见模式的崩溃,这挺有趣(或者说是 Stable Diffusion 在隐藏某些东西)。我们还可以研究一下negative prompt 如何帮助渲染人类对象。我们来看看 Taylor Swift。如果她成了 Taylor Swift 总统会怎么样?(希望 Stable Diffusion 不会把她和其他 Taylor 总统搞混)
base prompt: President Taylor Swift giving her presidential inauguration speech, seed: 6561
两种 positive prompt addition 得到的初始输出都明显更差,令人意外。但negative prompt 又一次解决了问题,为 Taylor 总统换了几套华服。值得注意的是,与 SD 1.X 相比,Stable Diffusion 2.0 生成的手更逼真…… 不过也不能细看。最后,不能忘了《刺猬索尼克》中那个刺猬 Ugly Sonic,也是我上一篇 Stable Diffusion 博文的主题(参见:https://minimaxir.com/2022/09/stable-diffusion-ugly-sonic/)。上一次,我收到很多控诉,说 AI 生成的 Ugly Sonic 并不是真正的 Ugly Sonic,因为生成的 Ugly Sonic 没有人类牙齿!是时候解决这个问题了!
base prompt: <ugly-sonic> smiling with human teeth, seed: 6561
在这个示例中,negative prompt 破坏了 Ugly Sonic,因为把他的人类牙齿一步步去除了!结论在 AI 艺术中,我们总会有不同收获,不过negative prompt 将是 AI 图像生成领域的一个有力工具。固守曾用的 prompt 策略这种做法不太对。这也给了我们一个很好的机会,摆脱在世艺术家提供的这根 prompt 设计拐杖,因为拄拐难行。这对整个行业来说也是一件好事(尤其是考虑到法律的不确定性!)。我用于生成本文图像的所有代码都可以在一个 GitHub 库中找到(参见:https://github.com/minimaxir/stable-diffusion-negative-prompt),其中有一个 Colab Notebook,用于 <wrong> token 下的常规生成,还有一个 Colab Notebook 用于 3x3 标记的网格图像,都能轻松调整 prompt 输入,你自己也可以在其中实验。原文链接 https://minimaxir.com/2022/11/stable-diffusion-negative-prompt/