最终形成了一个比较成熟的压缩、扩散、和隐空间再扩散三步走的系统。
这种整体做法的实验、讨论和最终确定,耗费的时间甚至比正式训练还要久。
“也不知道量子计算机这种计算性能数量级提升的东西什么时候能弄出来,如果算力够快,其实能省事不少。”孟繁岐想起这件事情还是觉得疲倦。
之所以要拆分出这么多模块,其中最大的原因就是计算资源消耗的问题。
图像的分辨率是平方,t方法内的运算又有维度上平方的操作,用户觉得256和512分辨率的图片差不多,可反应到全局则往往会是一个数量级的提升。
为此,只得将扩散模型的学习步骤放到低纬度空间里进行采样。
说直白点,就是先把分辨率搞低,从而极大地减少扩散前后步骤的计算量。
“这样做会不会有损性能?使得生成的图片效果不够好?”决定发布这版本算力上有所阉割的扩散模型,close内部也提出了这样的担忧。
毕竟算法方面其实可以做得更好,虽然代价会大一些。
“这里也不仅仅是计算时间的问题,同时也是显存的问题。不做这种拆分和图像分辨率的阉割,相同的一张卡不仅运算速度变慢一个数量级,能够同时进行的任务也少了好几倍。”孟繁岐坚持先解决用户数量的问题,性能和效果可以慢慢去优化。
这就像是一个巨大的胖子来吃饭,不仅用餐时间是别人好几倍,他一个人还能坐四个座位。
在孟繁岐看来,control提出之前,首先发布的绘图也只是一个玩具。
其性能有所上下波动无伤大雅,因为早期优质出图的成功率本来也不高,往往是需要大量测试后挑选一个能看的。
这主要是因为不管是文生图还是图生图,在早期都缺乏一个特别好的控制手段。
“我们现在推出的这款扩散模型,具体的用法还是大量的文字输入去控制图像的产出。但是文字想要清楚地描述一张具体的图像是非常困难的,即便大批量的尝试加上大量的生成,未必就能得到自己想要的结果。”
“这种生成模式,也要用图文结合的方式。我们还要找到具体的办法,通过额外的条件添加来控制扩散模型的行为,告诉它什么要调整,什么不要调整。做到生成图像内容的尽量可控,要远远比图像似乎更加精美好看一点要更重要,优先级更高。”
孟繁岐很清楚早期绘图的最大问题,那就是生成图像像是在吟唱黑魔法。
为了得到一张心满意足的图片,很可能需要咏唱一百来个关键词。
当时不少人都笑称,玩绘图搞得跟赛博邪教一样,嘴里嘟囔着一大堆别人似懂非懂的话。
甚至还有打包了大量优质图片关键词,直接拿去售卖的。