第十五期 05 LCM潜在一致性模型
潜在扩散模型 (LDM)
- 输入图像x进入模型。x由编码器 Ɛ 编码,在“潜在空间”(一个维度小得多的空间)内创建一个维度较小的向量 z 。
- 这个潜在空间向量z连续 T 步被添加高斯噪声——这就是“扩散”过程。这个向量z在被添加噪声 T 次后被称为 z_T 。
- 在生成图像时,我们经常会添加一些说明来指导生成过程,或者其他上下文信息。对于每个上下文,我们使用一个特殊的 τ_θ 将上下文编码到与z相同的潜在空间中
- 有一系列去噪 U 网,其目的是猜测在扩散过程中相应的“加噪”步骤中添加的噪声量。因此,第一个去噪 U 网估计在扩散过程的第 T 步中添加的噪声数量。去噪 U 网接受编码上下文和z_T
- 经过 T 去噪 U-nets 之后,我们有一个解码器D将我们带回到图像空间,产生一个很酷的图像!
一致性模型 (CM)
CM 背后的动机来自于扩散模型的一个重大缺陷 :T 步去噪过程才能得到最终图像。
一致性模型试图在 1 步内完成这项去噪任务。在 CM 中,我们查看数据的噪声版本( LDM 中的z_1 到 z_t),并学习一个函数,该函数可在 1 步内直接将我们带到去噪版本(LDM 中的 z_0)。从数学上讲,这看起来像以下函数:
其中z*_0是函数对z_0的估计。请注意,这意味着无论您选择什么时间步长,估计都应该是相同的:
这就是为什么它们被称为一致性模型。
这带来了我们用于训练 CM 的一致性损失:
θ-是我们的“目标”模型,它来自我们当前 CM 的前一个时间步。θ是我们当前的 CM。x^{ Φ }_tn 是我们使用目标模型对 t_n 时间步中的 x 的估计。d是一个距离函数,比如 L2 距离。
这种损失确保无论我们从 x_(t_{n+1}) 还是 x_{t_n} 开始,我们都尝试获得 x_0 的相同近似值。x_0的值保持一致!
一致性模型允许单步生成,但有两个缺点:
- 仅限于像素空间(对应潜空间图像生成,Latent Diffusion Models那样?)图像生成任务(constrained to pixel space image),因此不适合合成高分辨率图像。
- 还没有探索条件扩散模型的应用和无分类器引导的结合,因此他们的方法不适合文本到图像的合成。
LCM
网页:https://latent-consistency-models.github.io/
https://arxiv.org/pdf/2310.04378
LCM「 全称 Latent Consistency Models(潜在一致性模型)」,是清华大学交叉信息科学研究院研发的一款生成模型。它的特点是可以通过少量步数(4-8 steps)推理合成出高分辨率图像,使图像生成速度提升 2-5 倍,需要的算力也更少。官方称 LCMs 是继 LDMs「 Latent Diffusion Models (潜在扩散模型)」之后的新一代生成模型。
原理
LCM中的「 Consistentcy Models(一致性模型)」对去噪推理这一步进行了优化,不需要像 Diffusion 模型那样多步进行迭代,而是追求“一步完成推理”,这样需要处理的步数减少了,图像的生成速度自然就提升了。同时,LCM 在 Consistency Models 的基础上引入了「 Lantent Space (潜空间)」技术,进一步压缩了需要处理的数据量,从而实现超快速的图像推理合成。LCM 官方以此方法训练了一个新的模型 dreamshaper-v7,该模型仅通过 2-4 步就能生成一张 768*768 分辨率的清晰图像
LCM模型的基本原理是在一致性模型的基础上,通过潜空间来优化图像生成过程。传统的生成对抗网络(GANs)和扩散模型(Diffusion Models)在生成图像时需要多步迭代,而LCM模型则通过一步到位的推理合成,显著提高了出图效率。具体来说,LCM模型在处理数据时,通过压缩数据量和优化算法,使得图像生成只需2-4步即可完成,相比传统的Stable Diffusion模型的20-50步,效率有了显著提升。
Stable Diffusion 模型生成过程
https://baijiahao.baidu.com/s?id=1782614092069575838&wfr=spider&for=pc
https://blog.csdn.net/wangonik_l/article/details/134784016
https://mp.weixin.qq.com/s?__biz=MzkzNTUxMTExOA==&mid=2247493449&idx=1&sn=18ee6bb063df68e25080e46686b7ebaf&chksm=c2ae7268f5d9fb7e63ea72484f1335ce8256514c38e060d55a09d6cee48a434d42442253f9eb&scene=178&cur_album_id=3004011853484408837#rd
sCM(介于一致性一步和扩散N步之间)
sCM 的核心是学习一个函数 fθ(xt, t),它能够将带噪声的图像 xt 映射到其在 PF-ODE 轨迹上的下一个时间步的清晰版本。这个过程并不是一步到位地去除所有噪声,而是根据 PF-ODE 的方向,将图像向更清晰的方向移动一步。在两步采样的情况下,sCM 会进行两次这样的映射,最终得到一个相对清晰的图像。
sCM 是基于扩散模型的改进: sCM 依赖于扩散模型的 PF-ODE 来定义训练目标和采样路径,它并不是一个完全独立的模型
sCM 关注单步去噪: sCM 的训练目标是学习一个能够在单个时间步内进行有效去噪的函数,而不是像扩散模型那样进行多步迭代去噪
sCM 采样速度更快: 由于 sCM 只需要进行少量采样步骤(例如两步),因此其采样速度比扩散模型快得多
sCM 并非一步到位: sCM 的单步去噪并非一步到位地去除所有噪声,而是沿着 PF-ODE 的轨迹向更清晰的方向移动一步,多次迭代操作最终达到去噪效果