前言
本来想单独写Noise predictor这个U-Net模型的,奈何实力尚浅,觉得还是结合stable diffusion中的diffusion(扩散)的概念一起写,才能更好地理解Noise predictor。
所以,本篇文章主要针对概念性的扩散来写,且本篇文章和我们使用stable diffusion关系不大,只是让大家了解我们在使用stable diffusion时的原理。
扩散(Diffusion)
在stable diffusion的概念中,扩散分为正向扩散(Forward Diffusion)和逆向扩散(Forward diffusion)。下面都以图生图为例,因为一定程度上,文生图可以看成图生图的子集。
正向扩散(Forward Diffusion)
正向扩散,就像一滴墨水掉进了一杯水中,墨水滴在水中扩散,最后墨滴在水中随机分布,你也无法判断墨滴最初是落在杯子中心还是靠近边缘的地方。在stable diffusion中,输入的图片就是杯子,噪声(noise)就是墨滴。
在图生图中,我们要输入一张图片,图片被VAE Encoder解码成一个在Latent Space内的4 * 64 * 64的latent image。
Forward Diffusion就是在latent image上,不断添加noise使其变成一个完全随机张量(random tensor),也就是我们说的