1.Diffusion Model 的工作方式
简单来说,两个过程,前向过程,向原图形中加噪声变为纯噪声图像;反向过程,对纯噪声图像进行去噪生成图像。
扩散模型,从一堆噪音里去除不需要的噪音,得到需要的图像。

其中,去噪内部的工作流程:内部首先预测图片中的噪音,在输入图像上减去产生的噪音,达到去噪的效果

关键在于这个内部的预测噪音怎么实现呢?人为自己加噪音进去,这个过程叫做前向过程

Text-to-Image


2.Stable Diffusion
流程框架,基本包含三个元件:文字编码器,生成模型,解码,三个通常是分开训练再组合

生成评价指标FID
先有一个分类模型,计算真的图像和假的图像的距离,值越小越好。

其中生成模型:

3.数学原理

训练:第2行X0代表真正的图,第4行代表噪声,第5行:后面根号部分将真正的图和噪声混合,T越大,代表噪声加的越多,图形化流程如下:

可以看出实际上真正做的时候,噪声并不是一点一点加进去的,而是一次性的加进去了,去噪声的时候也是直接去除。为什么呢?与后面的数学原理相关。
产生图: 图形化流程如下:

公式推导:

其中分母部分:

其中,单个
怎么计算呢?首先定义好噪声的加入量:

举例计算几个:

把第一行的x1代入第二行,得到:

红框的就可以进行简化,两次加噪声就可以等同于一次加噪声,以此类推:

整个过程就可以化简为只做一次加噪声,一步到位。
整个过程,
经过各种数学就可以化简为以下式子:


那红框究竟怎么求极值呢,实际上,先从数据集里获得一张X0,利用公式获得Xt:

接下来,将Xt和当前t输入去噪模型,训练,输出结果和
越接近越好,图片的复杂式子经过化简,得到的结果是
,所以去噪模型的输出要和这个接近,也就是输出这个,在这个式子中,需要预测的只有
这部分就和公式对应:

2695

被折叠的 条评论
为什么被折叠?



