Hi, 我是海辛,是一名影视导演。最近使用 AI Disco Diffusion [1] 制作了新的诗歌动画《外婆的掌心》,故事依旧选自我的超短篇集《梦境碎件》。这一次测试了在梦里梦外不同场景选用不同的画家风格,然后有意从讲故事的文学性语言,调整成了更加描述性的语言去描述画面分镜,以下是本次成果。
制作完成后回看,希望能够增强自己对于 AI 画面的掌控能力,于是今天细读了一篇 Zippy 详细介绍 Disco Diffusion 各个参数的技术文档。[2] 我读了整整一天,感觉对自己非常有帮助,于是将其中的精华整理好后,决定用一个项目的方式进行 Disco Diffusion 参数调节的实验和学习,也将经验分享给大家。Text prompt 1: ["a solarpunk city by greg rutkowski and john howe, trending on artstation."](译:一个太阳朋克城市,greg rutkowski and john howe 画的,在 artstation 上热搜。)不同的艺术家会有不同的效果,这里有完整的艺术家姓名及对应风格参考 [3] 因为这次只是测试参数,所以直接选了常被用到的两个场景大神。而 trending on artstation 基本上是出优质原画的一个常用技巧, Artstation, Unreal Engine, CG Society 则有不同的效果。下图是 AI 根据文字描述生成的原画。↑ 调整思路:作为太阳朋克城市来说,绿植有点太少了。决定使用 Disco Diffusion “权重” 的功能对文本描述进行修改。“权重”是 DD 文本描述部分的重要功能,:x 可以分配不同引号间的权重。比如我希望增加一些树木,可以试着增加了"tree"的 prompt, 然后在两个 prompt 间设置权重是 4:2(注:权重相加不能为零)于是生成了如下 text prompt:Text prompt 2: ["a solarpunk city by greg rutkowski and john howe, Trending on artstation:4","tree:2"](译:“一个太阳朋克城市,greg rutkowski and john howe 画的,在 artstation 上热搜:4”, "树:2")↑ 调整思路:绿植的数量比重有明显增加。接下来想做的是调整视角,一般太阳朋克城市都会更加强调建筑物的垂直感,所以想试试用俯视的镜头,决定在 text prompt 中加入"视角"。↑ 从左到右分别试着加入了 overhead angle, depression angle, high angle 后生成的图,发现视角并没有什么变化。
由此猜想表述“俯视”这个视角的常用英文描述应该不是这些词汇,在 pinterest 做了一下调查发现应该最常用的是 bird view. (这里其实还有另外一种方法是直接提供参考图片,还未测试)Text prompt 3: ["a solarpunk city by greg rutkowski and john howe, bird view, Trending on artstation:4","tree:2"],↑ 调整思路:这次生成的图视角对了,但细节比较少,噪点比较重,模糊油画的感觉很重,这个也是目前 DD 的常见画风,猜测用默认参数很大比例会出这种画风的图,其实除了调节 text prompt 以外,还可以调节 notebook 里的参数来调节画面的效果。根据下午对 DD 参数文档 [2] 的学习,在 DD 里可以提升细节的相关参数有:(用ctrl/cmd+F 搜索参数在文档中的位置)- steps:训练步数,最常见的参数,训练步数越多,细节越多。
- clip_guidance_scale: 1500~100000,默认 5000,数值越高越匹配文本描述,但太高了会 overshoot 或者扭曲画面。
- tv_scale: 0~1000, 默认 0,数值越高噪点越低。
- cutn_batches: 1~8, 默认 4,cut 越多 DD 每步处理的单位越小,细节越多。=1时有16cut, =4时有64cut, 对应渲染时间也会变成 4 倍。
- use_secondary_model: 默认是 true, 关掉的话会用更大的 diffusion model, 生成更高的图片质量和细节,但时间会翻倍。
- cut_ic_pos: 0.5~100,默认是1.0,也是用于增加细节的。
另外图像颜色上有一些 flat,希望能增加对比度,图片饱和度还好,相关参数有:- range_scale: 0~1000, 默认 150,对比度参数。降低数值可以增强对比度,低数值对应颜色较少且对比强的海报类图片;高数值降低对比,生成 muted images. 数值为 0 时本项关闭。
- sat_scale: 0~20000,默认 0 ,饱和度参数,升高这个数值可以降低饱和度,数值为 0 时本项关闭。
在 text prompt 和训练步数不变的情况下,对以下参数进行调节:- 增强细节:tv_scale: 0 -> 500 / cutn_batches: 4->8 / cut_ic_pos: 1.0->30
↑ 可以看到油画质感其实已经降下来了,但是和文本描述差距又大了一些,有点碎片,整体性弱了一些,怀疑是 cutn_batches 调高了,不过整个这个镜头质感和大方向大概是我想要的。- 固定随机种子:从上一次生成的报告中,找到了上张图对应的 seed 值,将这个 seed 值填写在新的设置中 set seed 这个参数里,如果不填的话会随机生成 seed.
- 针对切分太多,整体性弱了一点,修改 cutn_batches: 8->4
- 针对和文本描述差距大这一点,修改 clip_guidence: 5000->6000
↑ 得到一张比较满意的太阳朋克城市俯瞰图。再尝试一下关掉 use_secondary_model,使用更大的 Diffusion Model.最后同个 text prompt 不同参数生成的结果:将将将!对本次学习成果很满意,果然要做出更好的作品,更好的了解自己的工具是必不可少的一步啊。准备从明天开始就投入到新一章诗歌动画的制作!感觉自己变强(tu)了。那么,敬请期待![1] https://colab.research.google.com/github/alembics/disco-diffusion/blob/main/Disco_Diffusion.ipynb#scrollTo=DoTheRun[2] https://docs.google.com/document/d/1l8s7uS2dGqjztYSjPpzlmXLjl5PM3IGkRWI3IiCuK7g/mobilebasic[3] https://weirdwonderfulai.art/resources/disco-diffusion-70-plus-artist-studies/#H.-R.-(Hans-Ruedi)-Giger