告诉Stable Diffusion 2.0你不想要什么,生成效果更好:Negative Prompt显奇效(2)

简介: 告诉Stable Diffusion 2.0你不想要什么,生成效果更好:Negative Prompt显奇效

虽然充斥着大量超现实主义赛博朋克隐喻,这依然是一片森林。从理论上来说,要改进上述图像,一个很流行的技巧是纳入更抽象的不良图像概念,如模糊和马赛克。但是,这些 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/

相关文章
|
Ubuntu 安全 Linux
Linux Ubuntu系统安装OpenVPN服务
Linux Ubuntu系统安装OpenVPN服务
|
7月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
1764 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
API Android开发 数据中心
教你如何申请免费的API接口
教你如何申请免费的API接口
2656 0
教你如何申请免费的API接口
|
存储 数据库
Union All:数据库查询的得力助手
Union All:数据库查询的得力助手
|
数据采集 传感器 监控
如何在LabVIEW中使用FPGA模块
如何在LabVIEW中使用FPGA模块
749 1
|
机器学习/深度学习 数据采集 搜索推荐
机器学习中的特征工程:提升模型性能的关键步骤
【5月更文挑战第3天】特征工程是提升机器学习模型性能的关键,涉及从原始数据中提取、选择和创造特征。它能提高模型预测准确率,简化模型复杂度,增强泛化能力。常用技术包括特征选择(Filter、Wrapper、Embedded方法)、特征构造(组合、多项式、文本特征提取)和特征变换(标准化、归一化、离散化)。通过优化特征工程,可找到最佳特征组合,提升模型性能。
1231 6
|
JavaScript
vue项目中引入阿里图标iconfont
该文章指导如何在Vue项目中引入并使用阿里图标库Iconfont,包括图标的选取、下载配置文件及在项目中引入和使用图标的具体步骤。
|
开发框架 缓存 监控
NET Framework 到 .NET 5/6 的迁移是重大的升级
本文详细介绍了从 .NET Framework 4.8 迁移到 .NET 5/6 的过程,通过具体案例分析了迁移策略与最佳实践,包括技术栈评估、代码迁移、依赖项更新及数据库访问层的调整,强调了分阶段迁移、保持代码可维护性及性能监控的重要性。
239 3
|
人工智能 iOS开发 MacOS
ChatGPT编程—实现小工具软件(批量替换文本、批量处理图像文件)
ChatGPT编程—实现小工具软件(批量替换文本、批量处理图像文件)
299 0

热门文章

最新文章