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 文本编码器
- 深度学习优化器
- 感知损失
视频
课程资源
- 其他视频
- 第 9A 课视频——深入探讨——来自 @johnowhitaker (附带 配套 Notebook)
- 第 9B 课视频——扩散的数学原理——来自 @seem 和 @ilovescience
- Jeremy 的 课程笔记
- fastai 书籍
- 学生笔记 – 课程笔记 感谢 @barnacl
课程中的链接
关于 fast.ai 课程的有用背景信息
- 作业
- 总结 + Jeremy 建议做的事 + 问题
- Fastai:用于深度学习的分层 API 论文:Information Journal 或 arxiv 或 fast.ai
- 提供良好的深度学习教育:fast.ai 教学理念
- “如何避免错误地使用 fastai”
- “FastAI 零基础课程:视频 + 笔记”