整理 | Disco Diffusion 参数效果大全(上)
Hi, 我是海辛,是一名影视导演,上面放的短片画面是完全通过 AI Disco Diffusion 生成的。为了更好地学习如何提升 AI 画面的质量,最近看了许多总结得很好的英文文档,在取得了原作者授权同意的情况,决定将其整理和翻译为中文。
本文由 Disco Diffusion 创作者之一 Chris Allen 的两篇技术文档组合构成,参数的基本介绍文档 Zippy's Disco Diffusion Cheatsheet [1] 和 参数的效果实验整理 EZ Charts [2],因为两篇文档都很长,今天的推文目前只总结整理了其中较为基础的参数的信息,希望上海解封前可以把(下)的部分也整理翻译完吧。
1. CLIP 模型
Disco Diffusion 提供以下模型以供创作者进行选择:ViTB32, ViTB16, ViTL14, RN101, RN50, RN50x4, RN50x16, RN50x64
不同的模型有着不一样的“口味”,通过搭配不同的模型会得到不一样的效果。但是其中一些模型极度消耗显存,同时,打开额外的模型会额外的消耗显存与渲染时间,甚至有可能导致死机崩溃。
不同模型【速度/耗内存】的大致顺序如下(从最快到最慢):VitB32、RN50、RN101、VitB16、RN50x4、RN50x16、RN50x64、ViTL14
注:在使用 RN50x64 & ViTL14 模型时,你也许需要设置更少的 cuts, 这取决于你的 VRAM.
不同 CLIP 模型的选择对比 [3]
Prompt: “A painting of sea cliffs in a tumultuous storm, Trending on ArtStation.” (提示文本:暴风雨中的海岩画,在 Artstation 上热搜。)
固定随机种子: 2472644150
训练步数:350
skip_steps:100
使用 ViTB32, ViTB16, RN50 (DD 默认参数)
只使用 ViTB32:
只使用 ViTB16:
使用 ViTB32, ViTB16, ViTL14, RN101, RN50, RN50x4:
只使用 RN50:
只使用 RN50x4:
只使用 RN50x16: (哈哈哈什么,竟然变成了一只龙。)
只使用 RN101:
只使用 ViTL14:
使用 ViTB32, ViTB16:
使用 ViTB32, ViTL14:
使用 ViTB32, ViTB16, RN101:
使用 ViTB32, ViTB16, RN50, RN50x4:
测试者笔记:
我目前还在做更多的测试,但让我们此刻问问自己:我们可以从目前的结果中得出什么结论呢?🤔 或许,至少在较少步数的训练生成中(250 steps 左右并且未跳过步数)
ViTB32 和 ViTB16 倾向于给出更多细节
同时使用更多的设置会让生成结果更趋于抽象
2. use_secondary_model 次级模型
use_secondary_model: (默认:打开) 这给创作者一个选项,对于 Clip 评估是否使用次级模型来清理临时扩散图像。如果这个选项被关闭,DD 会使用其常规(也就是更大的)扩散模型。通常,使用次级模型会更快,然而次级模型的库会小许多,这也许会减弱生成图像的质量和细节。我建议你根据自己的需要对此进行试验。
use_secondary_model 是否使用次级模型效果对比 [4]
不使用次级模型的渲染生成时间:7 分钟 27 秒
使用次级模型的渲染生成时间:3 分钟 12 秒
不使用次级模型的渲染效果似乎更加有意思,你能感受到似乎有更大的图像数据库与更进阶的算法效果加在了生成的图片上。
图 1 不使用次级模型:
使用次级模型:
图 2 不使用次级模型:
使用次级模型:
3. Steps 训练步数
steps: (250|50-10000) 当创建一个图像时,去噪曲线被细分为训练步数。每一步(或迭代)涉及人工智能查看被称为 "cuts" 的图像子集,并计算图像应被引导的 "方向",使其更符合提示文本。然后它在扩散去噪器的帮助下调整图像,并进入下一个训练步数。
增加训练步数给了 AI 更多调整图像的机会,每一步的调整会越来越小,并越来越精确和细节。增加训练步数会带来更长的渲染时间。同时,虽然增加训练步数可以提升图片质量,但超过 250~500 步后,就会有边际效应递减的情况。当然,一些复杂的图像可能会需要 1000, 2000 甚至更多的步数,这取决于具体的项目及测试者。
记住训练步数直接影响渲染时间,一些其他参数的调整可以极大地改变图片质量,同时不增加额外的渲染时间。
不同 Steps 训练步数效果对比 [5]
这组实验统一设置了分辨率 1280 x 960, cutn_batches = 2, 固定随机种子 87654321,而其他参数皆为默认参数,训练步数分别为:250, 500, 1000, 1500.
下图是固定了随机种子和包括 clamp_max 在内的其他参数后,调整每张图像的训练步数,不同的图像所对应的生成结果。
四张图的提示文本分别是:
an ominous painting of the Eiffel tower by Zdzisław Beksiński (由JJ和RT创作的在不祥氛围笼罩的埃菲尔铁塔画作。) a beautiful painting of a building in a serene landscape by Greg Rutkowski and Thomas Kinkade, trending on ArtStation. (由GS和TK创作的一幅宁静建筑的画作,在 Artstation 上热搜中。) a beautiful portrait of mecha statue of liberty by James Jean and Ross Tran(由JJ和RT创作的一幅美丽的自由女神画作。) a magic realism painting by Gediminas Pranckevicius depicting an abandoned building in a field of flowers landscape, vibrant, cinematic lighting(由GP创作的一幅魔幻现实主义的花田中的废弃建筑画作,充满活力感,电影光效)
4. Skip_steps 跳过步数
Skip_steps: (10 | 最高到设置的训练总步数)参考下图,噪声调度(去噪强度)开始时非常高,随着扩散步骤的进行,噪声逐渐变得越来越低。由于前几步的噪声水平非常高,所以图像在早期步骤中变化很大。当 DD 沿着曲线移动时,噪声水平(以及因此每一步产生的图像变化量)会下降,并且从一个步骤到下一个步骤的图像一致性会增加。
去噪的前几步往往是如此戏剧性,以至于一些训练步数(可能是总数的10-15%)可以被跳过而不影响最终的图像。你可以尝试用这种方法来缩短渲染时间。然而,如果你跳过了太多的训练步数,剩下的噪声可能不足以产生新的内容,因此可能没有 "剩余时间 "来完成一幅令人满意的图像。
此外,根据你的其他设置,你可能需要跳过一些步骤,以防止 CLIP 过度处理你的目标,导致远超预期的颜色(过饱和,纯白色,或纯黑色区域)或其他不良的图像质量。考虑到去噪过程在早期步骤中是最强的,所以跳过训练步数有时可以缓解其他问题。
最后,如果使用 init_image(参考图像) 你需要跳过~50%的训练步数,以保留原始initimage中的形状。当然,你也可以出于创造性的原因上下调整跳过的训练步数。 跳过的训练步数少,你可以得到一个 "受 "初始图像启发的结果,它将保留颜色和粗略的布局和形状,但看起来很不同。跳过的训练步数多,你可以保留 init_image的大部分内容,只是对纹理进行微调。
不同 Skip_steps 跳过步数的效果对比 [6]
给 Disco Diffusion 的参考图像:
跳过 0%(总共 250 步,跳过 0 步)
跳过 5%(总共 263 步,跳过 13 步) [ 注意:这些数字可能看起来很奇怪。这是因为我希望无论跳过最初的多少步,每张图像最终都能运行 250 步 ]
跳过 10%(总共 278 步,跳过 25 步)
跳过 15%(总共 294 步,跳过 44 步)
跳过 20%(总共 313 步,跳过 63 步)
跳过 30%(其实是 28%)(总共 350 步,跳过 100 步)
跳过 40%(总共 417 步,跳过 167 步)
跳过 50%(总共 500 步,跳过 250 步)
跳过 60%(总共 625 步,跳过 375 步)
5. Clip_guidance_scale
clip_guidance_scale: (5000|1500-100000) CGS 是你将使用的最重要的参数之一。它告诉 DD 你希望 CLIP 在每个时间段向你的“提示文本”靠近的效果有多强。一般来说,越高越好,但如果 CGS 太强,可能会过度接近目标因此扭曲图像。所以一个“中庸”的值,效果可能是更好的,CGS 的调整还需要一些实践的经验。
请注意,这个参数一般会随着图像尺寸的变化而变化。如果你的总尺寸增加了50%(例如,从512 x 512变为512 x 768),那么为了保持对图像的相同效果,你要将 clip_guidance_scale 从5000增加到7500。
在所有的基础设置中,clip_guidance_scale、step 和 skip_steps 对图像质量影响最大的,值得好好学习及实验。
不同 Clip_guidance_scale 效果对比 [7]
针对同一个提示文本,固定训练步数在内的其他参数,CGS 值从 500、1500、5000、15000、45000、135000 的图像效果。
四张图的提示文本分别是:
an ominous painting of the Eiffel tower by Zdzisław Beksiński (由JJ和RT创作的在不祥氛围笼罩的埃菲尔铁塔画作。)
a magic realism painting by Gediminas Pranckevicius depicting an abandoned building in a field of flowers landscape, vibrant, cinematic lighting(由GP创作的一幅魔幻现实主义的花田中的废弃建筑画作,充满活力感,电影光效) a beautiful painting of a building in a serene landscape by Greg Rutkowski and Thomas Kinkade, trending on ArtStation. (由GS和TK创作的一幅宁静建筑的画作,在 Artstation 上热搜中。)
a beautiful portrait of mecha statue of liberty by James Jean and Ross Tran(由JJ和RT创作的一幅美丽的自由女神画作。)
以上就是 Disco Diffusion 参数效果大全(上)的内容,因为存在着一些整理和筛选,希望此文只是抛砖引玉,大家可以 Reference 的部分找到每部分对应的链接,并直接阅读英文原文。(下)会翻译及整理实验效果的参数有:Clamp_max, ETA, Cut_overview, cut_innercut, cut_ic_pow, output_image_size 等,欢迎关注!另外,我自己也有在做关于 Disco Diffusion 的参数实验笔记,希望能给你的 DD 之旅提供帮助。
另外,我们有一个关于女性 AI 艺术家的共学小组,如果你是对 AI 感兴趣的女性艺术家,欢迎通过后台留言的方式告诉我你的微信号,在不忙的时候我会加你并且拉你进群。