要解决的问题
扩散模型(diffusion model)把图像生成过程拆成一系列去噪自编码器(denoising autoencoder)的依次应用,凭这套做法在图像数据及其他数据上取得了最好的合成结果[1]。同样的形式还允许引入一种引导机制,在不重新训练模型的情况下控制生成过程[1]。真正的制约是算力:这类模型通常直接工作在像素空间,优化一个强大的扩散模型往往要消耗数百个 GPU 日,推理也因需要反复做顺序计算而昂贵[1]。Robin Rombach、Andreas Blattmann、Dominik Lorenz、Patrick Esser 与 Bjoern Ommer 在 2021 年 12 月 20 日提交到 arXiv 的论文里,要在有限的计算资源下完成训练,同时保住质量与灵活性[1]。
做法:在潜空间里做扩散
作者的办法是把扩散模型从像素搬到强大的预训练自编码器的潜空间(latent space)里[1]。自编码器由编码器和解码器两部分组成:编码器把一张图压缩成一段紧凑的表示,解码器再从这段表示重建出图像。这样一来,扩散模型那几百步去噪只在压缩后的表示上进行,每一步处理的数据量远小于全分辨率图像;生成结束时,再由解码器把表示还原成像素图。
作者称,在这种表示上训练扩散模型,第一次在降低复杂度与保留细节之间找到了接近最优的平衡点,大幅提升了视觉保真度[1]。这一设计的要点是分工:把「压缩再还原」交给自编码器,把「从噪声生成内容」交给扩散模型,两部分可以分别设计和权衡,方法的灵活性正来自这里。
用交叉注意力接受各种条件
在架构中加入交叉注意力(cross-attention)层之后,扩散模型变成了能接受文本、边界框等一般条件输入的灵活生成器,并使高分辨率合成可以以卷积方式进行[1]。交叉注意力的作用是让一个信息流去查询另一个信息流:生成网络在每一步去噪时都能读取条件信号,据此决定往哪个方向走。条件从这些层进入,而不是靠专门设计的结构,因此同一个模型可以被不同类型的输入驱动。
结果
在实验中,潜空间扩散模型在图像修复(inpainting)上取得了新的最好结果,在无条件图像生成、语义场景合成和超分辨率上表现有竞争力,同时相比基于像素的扩散模型大幅降低了计算需求[1]。把这些结果放在一起看,说明两件事:在作者评测的任务上,搬进潜空间并没有牺牲质量,却确实减少了训练和推理所需的计算量。
代码与意义
代码发布在 CompVis 的 latent-diffusion 仓库中,论文为 CVPR 2022 版本[1]。随论文公开实现,意味着别人可以直接运行这套方法,而不必照着文字描述重新搭一遍。
这项工作的重要性在于把图像合成拆成两个可以分别改进的阶段:表示阶段决定压缩之后还能保留多少细节,生成阶段则在这段紧凑表示上低成本地运行;其上再叠加一个足够通用的条件机制,无需重新训练就能接受文本或边界框[1]。这些改动合在一起,降低了训练和使用扩散模型的门槛,也正是论文的实用主张:质量与灵活性不必用数百个 GPU 日来换[1]。
注释与来源
- High-Resolution Image Synthesis with Latent Diffusion Modelshttps://arxiv.org/abs/2112.10752
引用本页: 《用潜空间扩散模型进行高分辨率图像合成》. TellWorld, https://www.tellworld.net/zh/papers/high-resolution-image-synthesis-with-latent-diffusion-2021. 更新于 2026-11-07