扩散课程文档
第四单元:扩散模型进阶
并获得增强的文档体验
开始入门
第四单元:扩散模型进阶
欢迎来到 Hugging Face 扩散模型课程的第四单元!在本单元中,我们将探讨最新的研究中出现的许多扩散模型的改进和扩展。本单元的代码量将比之前的单元少,旨在为您进一步研究提供一个起点。
开始本单元 :rocket:
以下是本单元的步骤
- 请确保您已注册本课程,以便在课程添加其他单元时收到通知。
- 通读以下材料,大致了解本单元涵盖的不同主题。
- 通过链接的视频和资源,深入研究任何特定主题。
- 浏览演示 notebook,然后阅读“下一步”部分,了解一些项目建议。
:loudspeaker: 别忘了加入 Discord,您可以在 #diffusion-models-class
频道中讨论材料并分享您的作品。
目录
通过蒸馏加速采样
渐进式蒸馏是一种技术,它利用现有的扩散模型来训练新版本的模型,新模型在推理时所需的步骤更少。“学生”模型从“教师”模型的权重初始化。在训练期间,教师模型执行两个采样步骤,而学生模型尝试在一个步骤中匹配生成的预测。这个过程可以重复多次,前一次迭代的学生模型成为下一阶段的教师模型。最终得到的模型可以用比原始教师模型少得多的步骤(通常为 4 或 8 步)生成像样的样本。核心机制在引入该想法的论文中的这张图中进行了说明
渐进式蒸馏图示(来自 论文)
使用现有模型来“教导”新模型的想法可以扩展到创建引导模型,其中教师模型使用无分类器引导技术,而学生模型必须学习根据指定目标引导规模的附加输入,在一个步骤中生成等效输出。此视频概述了该方法。
注意:Stable Diffusion 的蒸馏版本可以在此处使用。
主要参考文献
训练改进
人们还开发了几种额外的技巧来改进扩散模型训练。在本节中,我们尝试总结近期论文中的核心思想。不断有研究提出额外的改进,如果您看到任何您认为应该添加到这里的论文,请告诉我们!
ERNIE-ViLG 2.0 论文中的图 2
主要训练改进
- 调整噪声调度、损失权重和采样轨迹,以提高训练效率。Karras 等人的《阐明基于扩散的生成模型的设计空间》是一篇出色的论文,探讨了其中一些设计选择。
- 训练各种宽高比,如课程发布活动的这段视频中所述。
- 级联扩散模型,训练一个低分辨率模型,然后训练一个或多个超分辨率模型。在 DALLE-2、Imagen 和更多模型中用于高分辨率图像生成。
- 更好的条件控制,结合丰富的文本嵌入(Imagen 使用名为 T5 的大型语言模型)或多种类型的条件控制(eDiffi)。
- “知识增强” - 将预训练的图像字幕和对象检测模型整合到训练过程中,以创建更丰富的信息性字幕并产生更好的性能(ERNIE-ViLG 2.0)。
- “去噪专家混合”(MoDE)- 训练模型的不同变体(“专家”),用于不同的噪声水平,如ERNIE-ViLG 2.0 论文的上述图像所示。
主要参考文献
- 阐明基于扩散的生成模型的设计空间
- eDiffi:具有专家去噪器集成的文本到图像扩散模型
- ERNIE-ViLG 2.0:通过知识增强的去噪专家混合改进文本到图像扩散模型
- Imagen - 具有深度语言理解的逼真文本到图像扩散模型(演示站点)
更强的生成和编辑控制
除了训练改进之外,在采样和推理阶段还涌现了一些创新,包括许多可以为现有扩散模型添加新功能的方法。
“paint-with-words” 生成的样本(eDiffi)
“使用扩散模型编辑图像”视频概述了使用扩散模型编辑现有图像的不同方法。可用的技术可以分为四个主要类别
1) 添加噪声,然后使用新提示去噪。这是 img2img
pipeline 背后的思想,它已在各种论文中进行了修改和扩展
- SDEdit 和 MagicMix 基于这个想法构建。
- DDIM 反演(待添加教程链接)使用模型来“反转”采样轨迹,而不是添加随机噪声,从而提供更多控制。
- Null-text Inversion 通过优化每一步用于无分类器引导的无条件文本嵌入,极大地提高了这种方法的性能,从而实现了极高质量的基于文本的图像编辑。 2) 扩展 (1) 中的思想,但使用蒙版来控制应用效果的位置
- 混合扩散 介绍了基本思想。
- 此演示 使用现有的分割模型 (CLIPSeg) 根据文本描述创建蒙版。
- DiffEdit 是一篇出色的论文,它展示了如何使用扩散模型本身来生成适当的蒙版,以便根据文本编辑图像。
- SmartBrush:使用扩散模型进行文本和形状引导的对象图像修复 微调扩散模型,以实现更准确的蒙版引导图像修复。 3) 交叉注意力控制:在扩散模型中使用交叉注意力机制来控制编辑的空间位置,以实现更精细的控制
- 具有交叉注意力控制的 Prompt-to-Prompt 图像编辑 是引入这个想法的关键论文,并且该技术已应用于 Stable Diffusion。
- 这个想法也用于“paint-with-words”(eDiffi,如上所示)。 4) 在单个图像上微调(“过拟合”),然后使用微调模型生成。以下论文大致在同一时间发布了此想法的变体
- Imagic:使用扩散模型进行基于文本的真实图像编辑.
- UniTune:通过在单个图像上微调图像生成模型进行文本驱动的图像编辑.
论文 InstructPix2Pix:学习遵循图像编辑指令 值得注意的是,它使用上述一些图像编辑技术构建了图像对的合成数据集以及图像编辑指令(使用 GPT3.5 生成),以训练能够根据自然语言指令编辑图像的新模型。
视频
来自 使用 Imagen Video 生成的示例视频 的静帧
视频可以表示为图像序列,扩散模型的核心思想可以应用于这些序列。最近的工作集中在寻找合适的架构(例如在整个序列上运行的“3D UNet”)以及有效地处理视频数据。由于高帧率视频涉及的数据量比静止图像多得多,因此当前的方法倾向于首先生成低分辨率和低帧率视频,然后应用空间和时间超分辨率来生成最终的高质量视频输出。
主要参考文献
音频
使用 Riffusion 生成的频谱图(图像来源)
虽然已经有一些关于直接使用扩散模型生成音频的工作(例如 DiffWave),但迄今为止最成功的方法是将音频信号转换为称为频谱图的东西,频谱图有效地将音频“编码”为 2D“图像”,然后可以用于训练我们习惯用于图像生成的扩散模型。然后,可以使用现有方法将生成的频谱图转换为音频。这种方法是最近发布的 Riffusion 背后的原理,它微调了 Stable Diffusion 以生成以文本为条件的频谱图 - 在此处试用。
音频生成领域发展极其迅速。在过去一周(在撰写本文时),至少宣布了 5 项新进展,在下面的列表中用星号标记
主要参考文献
- DiffWave:用于音频合成的多功能扩散模型
- “Riffusion”(和 代码)
- *MusicLM by Google 从文本生成一致的音频,并且可以使用哼唱或口哨旋律进行条件控制。
- RAVE2 - Variational Auto-Encoder 的新版本,它将对音频任务的潜在扩散有用。这在即将发布的 AudioLDM 模型中使用。
- *Noise2Music - 一种扩散模型,经过训练可以根据文本描述生成高质量的 30 秒音频剪辑。
- *Make-An-Audio:使用提示增强的扩散模型进行文本到音频的生成 - 一种扩散模型,经过训练可以根据文本生成各种声音。
- *Moûsai:使用长上下文潜在扩散进行文本到音乐的生成
新的架构和方法 - 迈向“迭代优化”
来自 Cold Diffusion 论文的图 1
我们正慢慢超越“扩散”模型的原始狭义定义,走向更通用的迭代优化模型类别,其中某种形式的损坏(如前向扩散过程中添加高斯噪声)逐渐反转以生成样本。“冷扩散” 论文证明,许多其他类型的损坏可以迭代地“撤消”以生成图像(如上所示的示例),而最近基于 Transformer 的方法已经证明了令牌替换或掩码作为噪声策略的有效性。
来自 MaskGIT 的 Pipeline
许多当前扩散模型核心的 UNet 架构也正在被不同的替代方案所取代,最值得注意的是各种基于 Transformer 的架构。在 具有 Transformer 的可扩展扩散模型 (DiT) 中,Transformer 被用来代替 UNet 用于相当标准的扩散模型方法,效果极佳。循环接口网络 在追求更高效率的同时,应用了一种新颖的基于 Transformer 的架构和训练策略。MaskGIT 和 MUSE 使用 Transformer 模型来处理图像的令牌化表示,尽管 Paella 模型证明 UNet 也可以成功应用于这些基于令牌的机制。
随着每一篇新论文的出现,更有效的方法正在被开发出来,我们可能需要一段时间才能看到这些迭代优化任务的峰值性能是什么样的。还有很多东西需要探索!
主要参考文献
- 冷扩散:在没有噪声的情况下反转任意图像变换
- 具有 Transformer 的可扩展扩散模型 (DiT)
- MaskGIT:掩码生成图像 Transformer
- Muse:通过掩码生成 Transformer 进行文本到图像的生成
- 向量量化潜在空间上的快速文本条件离散去噪 (Paella)
- 循环接口网络 - 一种很有前景的新架构,在生成高分辨率图像方面表现良好,而无需依赖潜在扩散或超分辨率。另请参阅 simple diffusion:用于高分辨率图像的端到端扩散,它强调了噪声调度对于更高分辨率训练的重要性。
实践 Notebook
章节 | Colab | Kaggle | Gradient | Studio Lab |
---|---|---|---|---|
DDIM 反演 | ||||
音频扩散 |
在本单元中,我们涵盖了很多不同的想法,其中许多想法值得在未来进行更详细的后续课程。现在,您可以通过我们准备的实践 notebook 选择许多主题中的两个。
- DDIM 反演 展示了如何使用称为反演的技术,使用现有的扩散模型来编辑图像。
- 音频扩散 介绍了频谱图的概念,并展示了在特定音乐类型上微调音频扩散模型的最小示例。
下一步是什么?
这是本课程目前的最后一个单元,这意味着接下来做什么取决于您!请记住,您可以随时在 Hugging Face Discord 上提问并聊聊您的项目。我们期待看到您创造的作品 🤗。
< > 在 GitHub 上更新