视频链接:扩散模型论文概述(三):Stability AI系列工作_哔哩哔哩_bilibili
本期视频讲的是Stability AI在图像生成的工作。
同样,第一张图片是神作,总结的太好了!
介绍Stable Diffusion之前,先来看一个重要的铺垫工作,VQGAN可以看作是SD的雏形。在这个架构中,可以看到对图像先进行压缩,然后在隐空间里进行建模的思想。
这张幻灯片展示了VQGAN的生成结果,可以看到其已经具备条件控制生成和修复的能力。
而Latent Diffusion Model也就是所谓的SD模型,将VQGAN中基于Transformer序列建模的部分替换成去噪扩散,利用交叉注意力机制将条件约束引入扩散过程。LDM中继承了VQGAN中对图像进行压缩的思想,相较于DDPM,极大的减少了计算量。
LDM在不同条件下可以生成多种输出。例如,文本条件控制、布局图控制以及修复功能。这些能力也展示了模型的多样性与强大性能。
这里可以看到语义分割图的应用效果。该模型还具有超分辨率生成的能力,输出结果可以展示更高的细节和真实感。
这里展示了LDM在ImageNet上类别控制的生成结果。值得注意的是,以上所有模型都是使用相同的LDM架构进行训练的,只需要调整LDM中的条件控制编码器,就能接受各种不同类型的条件输入。
SDXL提出类似Google CDM的架构,将生成过程分为Base和Refiner两个阶段。在Base阶段生成初步的隐变量表征,然后在Refiner阶段进一步优化,最终生成高分辨率的图像。同时,相较于SD,它额外使用了一个更大的文本编码器(OpenCLIP ViT-bigG),用于更好的语义理解。
SDXL重点关注了训练数据本身存在问题,这张幻灯片展示了数据集中高度和宽度分布。我们发现大量的训练数据小于256尺寸,同时长宽比并不等于1。如果直接对小于256尺寸的图像进行筛除,那么会有39%的数据会被丢弃。
为了解决训练图像尺寸的问题,SDXL提出了尺寸和裁剪微条件控制处理算法,先讨论尺寸控制。右图展示了不同尺寸控制条件下生成的图像对比效果,可以看到引入尺寸作为输入的控制条件,随着尺寸大小增加,图像的质量显著提升。
这里展示的是SDXL在裁剪条件下的效果。可以看到左侧SD 1.5和SD 2.1生成的图像中,猫的头部被裁剪了。一个可能的原因是使用了Pytorch框架中进行提量预训练时,为了保持tensor形状一致而对图像做出了缩放和裁剪。而SDXL额外引入裁剪作为控制条件,解决了上述问题并可人为控制被裁剪样本的生成。
SDXL Turbo模型使用对抗扩散蒸馏(ADD)方法,通过对SDXL进行蒸馏得到更高效的模型SDXL Turbo,仅需一个采样步长就能生成令人满意的结果。
2023年DiT横空出世,全面取代了扩散模型传统的UNet/ViT的网络骨架。SD 3进一步拓展了DiT框架,提出MM-DiT,使DiT能够支持文本等条件约束。
同时SD 3做了大量的对比实验,探索了多模态DiT的Scaling Law,发现基于DiT的文生图模型与大模型一样,也具有Scaling Law的规律。