当前位置:AIGC资讯 > AIGC > 正文

stable diffusion学习笔记——高清修复

ai画图中通常存在以下痛点:

受限于本地设备的性能(主要是显卡显存),无法跑出分辨率较高的图片。生图的时候分辨率一调大就爆显存。 即便显存足够。目前主流的模型大多基于SD1.0和SD1.5,这些模型在训练的时候通常使用小分辨率图片训练,在生成高分辨率图片时画面中很容易出现多人物/多肢体的情况。

以上问题说明了,玩ai画图,需要掌握提高画图分辨率的方式,同时要掌握方式对应的技巧,避免出现画面内容的问题。

超分修复

通过常见的ai超分辨率算法就可以增加图片的分辨率。这种方式本质上只是拉伸了图片之后适当处理了画面中的模糊区域。

这种方式的优点是对本地设备没有要求,可以无压力成倍增加图片的分辨率。缺点是画面的细节并没有随着分辨率增加而增加。

 高清修复(Hi-Res Fix)

第一种最常见的高清修复方式就是Hi-Res Fix,其原理是在低分辨率原图的基础上跑一次图生图,生成新的高分辨率图片。

放大算法:放大操作所使用的算法,R-ESRGAN 4x是现在比较流行的放大算法,如果是生成二次元图片可以使用该算法针对卡通图片的版本。部分模型发布者会根据实验推荐模型对应的放大算法,优先使用推荐的算法。

放大倍数:文生图生成的低分辨率图片分辨率增大的倍数。

高分迭代步数:放大算法迭代的步数,通常设置为0,即与文生图的迭代次数相同。

重绘幅度:放大图片本质上是重新生成一张新的图片,新的图片如果和原来的图片内容差异较大也是不符合预期的。重绘幅度就是新图片相对老图片的变化率。通常如果要让新图片的结构没有明显变化,重绘幅度要设置在0.5以下。

这种高清修复的方式使用起来比较简单,优点是图生图保证分辨率增大之后画面也能有相匹配的画面细节。缺点是无法突破显存的上限,显卡显存不支持的分辨率依旧是跑不出来。 

Tiled Diffusion + Tiled VAE 

tiled diffusion的原理是对原图片进行分块处理。对每一个分块再进行图生图操作。在占用显卡显存的同时尽可能得到分辨率高,且画面细节足够丰富的图片。

首先,在这两个插件之外要设置好重绘幅度,由于在使用此功能的场景下通常会将分辨率提升数倍,因此重绘幅度应设置为0.4以下。

在tile diffusion中通常使用MultiDiffusion方案。放大算法的选取原则和高清修复相同。在设置放大比例时可以勾选保持输入图像大小,再设置放大倍数,这样放大倍数就不受原有的图生图放大倍数影响了,其它参数使用默认值即可。设置潜空间分块高度时建议将宽度和高度设置为相同值。

tile vae也使用默认参数即可,如果生成的图像饱和度与原图差异很大,可以开启快速编码器颜色修复再跑一次。

如果依旧出现了爆显存的情况,在tile vae插件里将编码器分块大小减少即可。

更新时间 2024-04-01