文生图的最新进展:从LCM、SDXL到与sora同架构的Stable Diffusion3

前言

很明显,OpenAI的首个视频生成模型sora极大程度的提高了大家对文生图、文生视频的热情,也极大的扩展了大家对AIGC的想象力

第一部分 Latent Consistency Models(LCM)

1.1 LCM与通用加速器LCM-LoRA

受到此文《AI绘画神器DALLE 3的解码器:一步生成的扩散模型之Consistency Models》所述的Consistency Models的启发「其采用了一种一致性映射技术,巧妙地将普通微分方程(ODE)轨迹上的点映射到它们的起源,从而实现了快速的一步生成」清华大学交叉信息研究院一团队(包括骆思勉和谭亦钦等人)于2023年11月推出Latent Consistency Models(潜一致性模型,简称LCM)

其通过将引导的逆扩散过程 视为增广概率流ODE(PF-ODE)的解决方案,LCMs能够熟练地预测潜在空间中这些ODE的解(By viewing the guided reverse diffusion process as the resolution of an augmented Probability Flow ODE (PF-ODE), LCMs adeptly predict the solution of such ODEs in latent space),该方法显著减少了迭代步骤的需求

  1. LCMs是从预训练的潜在扩散模型(LDMs)中提炼出来的(其paper:https://huggingface.co/papers/2311.05556、其项目主页:https://latent-consistency-models.github.io/),仅需要约32个A100 GPU训练小时

  2. 且考虑到对于专门的数据集,如动漫、照片逼真或幻想图像,还得使用潜在一致性微调LCF对LCM进行微调(或使用潜在一致性蒸馏LCD将预训练的LDM蒸馏为LCM),故为避免这种额外的步骤阻碍LCMs在不同数据集上的快速部署,该团队还提出了LCM-LoRA

    使得可以在自定义数据集上实现快速、无需训练的推理,比如可以直接将该LoRA(即通过LCM蒸馏获得的LoRA参数)插入各种稳定扩散模型中,包括SD-V1.5(Rombach等,2022年),SSD-1B(Segmind,2023年)和SDXL(Podell等,2023年)等

和需要多步迭代传统的扩散模型(如Stable Diffusion)不同,LCM仅用1 - 4步即可达到传统模型30步左右的效果,LCM将文生图生成速度提升了5-10倍,世界自此迈入实时生成式AI的时代

1.2 LCM-LORA

潜在一致性模型LCM使用一阶引导蒸馏方法进行训练,利用预训练自编码器的潜在空间将引导扩散模型蒸馏成LCM。该过程涉及解决增强概率流动ODE(PF-ODE,确保生成的样本遵循导致高质量图像的轨迹),以下是LCD的伪代码

由于潜在一致性模型LCM的蒸馏过程是在预训练扩散模型的参数之上进行的,我们可以将**潜在一致性蒸馏视为扩散模型的微调过程。**因此,能够使用LoRA

LoRA通过应用低秩分解来更新预训练的权重矩阵

  1. 给定一个权重矩阵,更新表示为,其中,且秩
  2. 在训练过程中, 保持不变,只对A和B应用梯度更新,对于输入,修改后的前向传播过程为

在这个方程中, 代表输出向量,的输出在乘以输入 后相加。 通过将完整的参数矩阵分解为两个低秩矩阵的乘积,LoRA显著减少了可训练参数的数量,从而降低了内存使用量

1.3 LCM与其他类似项目的对比

|-------------------|------------------------------|-----------|-----------|--------------------------------|
| 模型名称 | 介绍 | 生成速度 | 训练难度 | SD生态兼容性 |
| DeepFloyd IF | 高质量、可生成文字,但架构复杂 | 更慢 | 更慢 | 不兼容 |
| Kandinsky 2.2 | 比SDXL发布更早且质量同样高;兼容ControlNet | 类似 | 类似 | 不兼容模型和LoRA,兼容ControlNet等部分插件 |
| Wuerstchen V2 | 质量和SDXL类似 | 2x - 2.5x | 更容易 | 不兼容 |
| SSD-1B | 由Segmind蒸馏自SDXL,质量略微下降 | 1.6x | 更容易 | 部分兼容 |
| PixArt-α | 华为和高校合作研发,高质量 | 类似 | SD1.5十分之一 | 兼容ControlNet等部分插件 |
| LCM (SDXL, SD1.5) | 训练自DreamShaper、SDXL,高质量、速度快 | 5x -10x | 更容易 | 部分兼容 |
| LCM-LoRA | 体积小易用,插入即加速;牺牲部分质量 | 5x -10x | 更容易 | 兼容全部SD大模型、LoRA、ControlNet,大量插件 |

截止至2023/11/22,已支持LCM的开源项目:

  • Stable Diffusion发行版,包括WebUI(原生支持LCM-LoRA,LCM插件支持LCM-SDXL)、ComfyUI、Fooocus(LCM-LoRA)、DrawThings
  • 小模型:LCM-LoRA兼容其他LoRA,ControlNet
  • AnimateDiff WebUI插件

第二部分 Stable Diffusion XL Turbo

2.1 SDXL Turbo:给定prompt 实时响应成图

Stability AI 推出了新一代图像合成模型 Stable Diffusion XL Turbo(其论文地址),使得只用在文本框中输入你的想法,SDXL Turbo 就能够迅速响应,生成对应内容。一边输入,一边生成,内容增加、减少,丝毫不影响它的速度

还可以根据已有的图像,更加精细地完成创作。手中只需要拿一张白纸,告诉 SDXL Turbo 你想要一只白猫,字还没打完,小白猫就已经在你的手中了

SDXL Turbo 模型的速度达到了近乎「实时」的程度,于是有人直接连着游戏,获得了 2fps 的风格迁移画面:

据官方博客介绍,在 A100 上,SDXL Turbo 可在 207 毫秒内生成 512x512 图像(即时编码 + 单个去噪步骤 + 解码,fp16),其中单个 UNet 前向评估占用了 67 毫秒,如此,我们可以判断,文生图已经进入「实时」时代

**2.2 SDXL关键技术:**对抗扩散蒸馏

2.2.1 两个训练目标:对抗损失和蒸馏损失

在SDXL之前

  1. 一致性模型(Consistency Models)通过对ODE轨迹施加一致性正则化(by enforcing a consistency regularization on the ODE trajector)来解决即便迭代采样步骤减少到4-8步,依然能保持较好的性能,且在少样本设置下展示了强大的像素模型性能
  2. 而LCMs专注于在提炼潜在扩散模型并在4个采样步骤中便取得了不错的效果
  3. 包括LCM-LoRA则引入了一种低秩适应[22]训练方法,以高效学习LCM模块,可以插入到SD和SDXL [50, 54]的不同检查点中(LCMs focus on distilling latent diffusion models and achieve impressive performance at 4 sampling steps. Recently, LCM-LoRA [40] introduced a low-rank adaptation [22] training for efficiently learning LCM modules, which can be plugged into different checkpoints for SD and SDXL [50, 54]
  4. InstaFlow [36]提出使用修正流[35]来促进更好的蒸馏过程(InstaFlow [36]propose to use Rectified Flows [35] to facilitate a better distillation proces)

但以上这些方法都有共同的缺陷:在4个步骤中合成的样本通常看起来模糊,并且存在明显的伪影

考虑到GANs也可以作为独立的单步模型进行文本到图像合成的训练 [25,59],且采样速度不错,当然,性能落后于基于扩散的模型。那何不在不破坏平衡的情况下,扩展GAN并整合神经网络架构呢?

  • 而SDXL则引入了一种名为对抗扩散蒸馏(Adversarial Diffusion Distillation,ADD)的技术,可以在仅1-4步内高效采样大规模基础图像扩散模型,并保持高图像质量(a novel training approach that efficiently samples large-scale foundational image diffusion models in just 1--4 steps while maintaining high image quality)
  • 其使用得分蒸馏来利用大规模现成的图像扩散模型作为教师信号,结合对抗性损失,以确保即使在一到两个采样步骤内也能保持高图像保真度(We use score distillation to leverage large-scale off-the-shelf image diffusion models as a teacher signal in combination with an adversarial loss to ensure high image fidelity even in the low-step regime of one or two sampling steps)

具体而言,研究者引入了两个训练目标的组合:

  1. 对抗损失,对抗损失迫使模型在每次前向传递时直接生成位于真实图像流形上的样本,避免了其他蒸馏方法中常见的模糊和其他伪影
  2. 分数蒸馏采样SDS 相对应的蒸馏损失,蒸馏损失 使用另一个预训练(且固定)的扩散模型作为教师(比如可以使用预训练的扩散模型权重初始化模型),有效利用预训练diffusion model的丰富知识,从而显著改善对抗性损失的训练,类似通过CLIP改善文本对齐
    最后,不使用仅解码器的架构来进行GAN训练,而是采用标准的扩散模型框架

2.2.2 训练的具体过程

ADD-student从预训练的UNet-DM中初始化权重 ,具有可训练权重的鉴别器,以及具有冻结权重的DM teacher(The ADD-student is initialized from a pretrained UNet-DM with weights θ, a discriminator with trainable weights ϕ, and a DM teacher with frozen weights ψ)

在训练过程中

  1. ADD-student从噪声数据 生成样本。 噪声数据点是通过正向扩散过程从真实图像数据集 生成的。 在我们的实验中,我们使用与学生DM相同的系数,并从选择的学生时间步长集合中均匀采样

  2. 生成的样本和真实图像被传递给鉴别器Discriminator,鉴别器的目标是区分它们

  3. 为了从DM teacher那里获得知识,我们将学生样本通过教师的前向过程扩散到(we diffuse student samples ˆxθ with the teacher's forward process toˆxθ,t),并使用教师的去噪预测作为蒸馏损失的重建目标(use the teacher's denoising prediction ˆxψ (ˆxθ,t, t)as a reconstruction target for the distillation loss Ldistill)

    因此,总体目标是

// 待更

第三部分 与sora同架构的stable diffusion3

// 待更

参考文献与推荐阅读

  1. SDXL Turbo、LCM相继发布,AI画图进入实时生成时代:字打多快,出图就有多快
相关推荐
AIGC安琪7 小时前
[ComfyUI]Flux:开源可商用F1!Apache2开源OpenFLUX1模型,已去蒸馏可微调
人工智能·stable diffusion·开源·aigc·midjourney·ai绘画·flux
肖遥Janic10 小时前
Stable Diffusion绘画 | 如何做到不同动作表情,人物角色保持一致性(上篇)
人工智能·ai·ai作画·stable diffusion
AIGC破防黑吗喽12 小时前
Midjourney零基础学习
人工智能·gpt·学习·ai·stable diffusion·midjourney·ai绘画
春末的南方城市1 天前
FLUX的ID保持项目也来了! 字节开源PuLID-FLUX-v0.9.0,开启一致性风格写真新纪元!
人工智能·计算机视觉·stable diffusion·aigc·图像生成
我算是程序猿1 天前
用AI做电子萌宠,快速涨粉变现
人工智能·stable diffusion·aigc
AI绘画君1 天前
Stable Diffusion绘画 | AI 图片智能扩充,超越PS扩图的AI扩图功能(附安装包)
人工智能·ai作画·stable diffusion·aigc·ai绘画·ai扩图
乔代码嘚2 天前
AI2.0时代,普通小白如何通过AI月入30万
人工智能·stable diffusion·aigc
肖遥Janic2 天前
Stable Diffusion绘画 | 插件-Deforum:动态视频生成(上篇)
人工智能·ai·ai作画·stable diffusion
肖遥Janic2 天前
Stable Diffusion绘画 | 插件-Deforum:商业LOGO广告视频
人工智能·ai·ai作画·stable diffusion
sleetdream4 天前
Pycharm 本地搭建 stable-diffusion-webui
stable diffusion