前言

​ 本文简单记录一下个人在研究stable diffusion中的过程中对扩散模型(diffusion model)的工作原理和模型结构的学习。


正文

一、Stable Diffusion模型构成

stable diffusion由三个部分组成:文本特征提取模型、图像特征编解码模型、噪声预测模型。

里面用到的最基础神经网络结构包括Transformer和ResNet。

二、Diffusion Model

1、工作原理

​ 扩散的意思是迭代预测前一步中可能添加的噪声,将预测的噪声从输入中减去,再进行下一步预测,这样一步步的扩散,最终得到去掉所有可能噪声后的图像。

p1
via 噪声预测过程

​ 以上是从推理过程角度看扩散模型是怎么“扩散”的,在训练过程中是相反的过程:每一步中都会在前一步基础上添加一份噪声,这样既得到了Label也得到了Output,同时完成训练和损失计算。

p1
via 训练过程

2、模型构造

​ 整体框架是基于UNet,内部使用ResNet和Transformer,Attention主要用于文本特征嵌入,基于文本的扩散结构在下一节中介绍了,这里只分析最根本的图像扩散结构。

p1
via 潜空间特征与显式视觉空间对应关系

​ 扩散模型是在潜空间上对高维特征的处理,不直接处理显式图像,这样可以保证推理效率。

​ 扩散模型基于多个扩散结构的迭代,每步的结构相同,对应图像降噪生成的不同阶段,可以将这些不同阶段得到的潜空间特征解码出显式图像,能观察到一幅图像是如何神奇的一步步被生成出来的。

p1
via 可视化不同降噪阶段

三、Diffusioon Model with Text

​ 扩散的原理已经介绍了,就是迭代预测前一步中可能添加的噪声,并减去预测噪声,最终恢复图像的过程。在没有文本提示的情况下,输入只有随机噪声图像,这样生成的图像其实是没有意义的,一定要有指导性的特征信息才能生成特定的图像,所以需要将文本提示信息嵌入到扩散结构中。

​ 文本提示信息经过文本特征提取模型已经转换成文本特征向量了,只需要在扩散模型的每一步之后加入注意力模块将文本特征嵌入潜空间特征中。

p1
via 带文本提示的扩散过程

四、Diffusion VS GAN

​ 图像生成是当前 AIGC 领域最热门的方向之一。扩散模型开创了图像生成的新时代,实现了前所未有的图像质量和模型灵活性水平,被应用在DALLE 2、Imagen和Stable Diffusion中。

​ 扩散模型基于迭代运算,可以在迭代中对简单目标进行优化,实现最终目标,但是对算力要求很高(想一想,DALLE 2、Imagen和Stable Diffusion这些模型,哪个不是巨无霸体型:cry:)。
​ 这些模型先不说能不能复现,一般的中小公司连设备都不够!最终只能使用API的方式依赖头部公司,头部公司进一步垄断市场。

​ 在扩散模型之前,生成对抗网络(GAN)是图像生成模型中常用的基础架构。相比于扩散模型,GAN 没有迭代运算,推理效率更高,但由于训练过程的不稳定性,想扩展GAN是非常困难的,需要仔细调整网络架构和训练因素。不过GAN的图像生成效果也是有目共睹的,StyleGAN、Pixel2Pixel和PLUSE等模型的效果非常惊艳,而且模型规模相比扩散模型非常mini,普通设备就能实现。

​ 总之,基于GAN框架的模型和基于Diffusion的模型各有优劣,并不能说现在扩散模型就把GAN模型打败了,PS,最近就有一篇关于扩展GAN图像生成的研究

最后

参考文章:

The Illustrated Stable Diffusion

Scaling up GANs for Text-to-Image Synthesis


声明

本文仅作为个人学习记录。