9:Stable Diffusion

您需要了解的内容

以下是完成本课程需要了解的内容

  • 课程以视频形式呈现,您可以通过点击右侧的目录直接跳转到视频
  • 每个视频都会讲解一个或多个 Jupyter Notebook,您需要运行并尝试它们,以便充分利用本课程
  • 完成课程所需的所有信息(包括包含 Notebook 的仓库链接)都位于课程页面的“课程资源”部分
  • 在课程资源中,您会找到一个“讨论本课程”的链接,它会将您带到我们论坛上关于该特定课程的问答页面
  • 本课程涵盖的内容通常只会在研究生级别的课程中包含。我们尝试以最清晰的方式呈现这些内容,但您应该做好刻苦学习并投入大量时间的准备
  • 我们假定您熟悉本课程第一部分的内容。如果您对课程中提到的一些基础深度学习概念感到不确定,建议您回到第一部分学习涵盖这些概念的课程
  • 如果我们使用的数学或编程概念您不熟悉,请不要害怕寻找其他教程来帮助弥补您的不足
  • forums.fast.ai 上,还有许多其他学生可以与您合作,许多人正在寻找学习小组或学习伙伴。研究表明,对于大多数人来说,小组学习比独自学习更有效
  • 在许多课程中,我们将包含一个供您完成的挑战,其中一些挑战涉及尝试新的研究方向,您将进入学术未知领域。

课程概述

本课首先是关于如何使用 Diffusers 库中的 pipelines 生成图像的教程。Diffusers(在我们看来!)是目前可用的最佳图像生成库。它具有许多功能且非常灵活。我们解释了如何使用其众多功能,并讨论了访问使用该库所需的 GPU 资源的选项。

我们讨论了在使用 Diffusers 中的 Stable Diffusion 时可用的一些巧妙调整,并展示了如何使用它们:引导比例 (用于调整提示的使用程度)、负面提示 (用于从图像中移除概念)、图像初始化 (用于从现有图像开始)、文本反转 (用于将您自己的概念添加到生成的图像中)、Dreambooth (文本反转的替代方法)。

课程的后半部分涵盖了 Stable Diffusion 中涉及的关键概念

  • CLIP 嵌入
  • VAE (变分自编码器)
  • 使用 U-Net 预测噪声
  • 使用调度器去除噪声

Jeremy 展示了 Stable Diffusion 如何工作的理论基础,使用一种新颖的解释,展示了易于理解的理论直觉。他介绍了有限差分和解析导数的概念,并以训练神经网络识别像素调整使图像更像手写数字为例,描述了这种模型的导数如何提供扩散过程所需的基础 分数,从而生成手写数字。

课程还涵盖了有限差分、解析导数、自编码器和 U-Net。Jeremy 介绍了如何创建一个模型,该模型可以使用两个模型(文本编码器和图像编码器)来接收一个句子并返回一个代表图像的数字向量。课程最后讨论了基于扩散的模型和深度学习优化器之间的相似性,并提出了新的研究方向。

讨论的概念

  • Stable Diffusion
  • Hugging Face 的 Diffusers 库
  • 预训练 pipelines
  • 引导比例
  • 负面提示
  • 图像到图像 pipelines
  • 有限差分
  • 解析导数
  • 自编码器
  • 文本反转
  • Dreambooth
  • 潜在空间
  • U-Net
  • 文本编码器和图像编码器
  • 对比损失函数
  • CLIP 文本编码器
  • 深度学习优化器
  • 感知损失

视频

课程资源

关于 fast.ai 课程的有用背景信息