# 《从零开始学扩散模型》

## 术语表

| 词汇                    | 翻译 | 
| :---------------------- | :--- | 
| Corruption Process      |  退化过程  |
| Pipeline      |  管线  |
| Timestep      |  时间步  |
| Scheduler      |  调度器  |
| Gradient Accumulation      |  梯度累加  |
| Fine-Tuning      |  微调  |
| Guidance      |  引导  |
# 目录

## 第一部分 基础知识

### 第一章 扩散模型的原理、发展和应用

#### 1.1 扩散模型的原理
#### 1.2 扩散模型的发展
#### 1.3 扩散模型的应用

### 第二章 HuggingFace介绍与环境准备

#### 2.1 HuggingFace Space
#### 2.2 Transformer 与 diffusers 库
#### 2.3 环境准备

## 第二部分 扩散模型实战

### 第三章 从零开始做扩散模型

#### 3.1 章节概述
#### 3.2 环境准备
#### 3.2.1 环境的创建与导入
#### 3.2.2 数据集测试
#### 3.3 扩散模型-退化过程
#### 3.4 扩散模型训练
#### 3.4.1 Unet模型
#### 3.4.2 开始训练模型
#### 3.5 扩散模型-采样（取样）过程
#### 3.5.1 采样（取样）过程
#### 3.5.2 与DDPM的区别
#### 3.5.3 UNet2DModel模型
#### 3.6 扩散模型-退化过程示例
#### 3.6.1 退化过程
#### 3.6.2 最终的训练目标
#### 3.7 拓展知识
#### 3.7.1 迭代周期（Timestep）的调节
#### 3.7.2 采样（取样）的关键问题
#### 3.8 本章小结

### 第四章 Diffusers实战
#### 4.1 章节概述
#### 4.2 环境准备
#### 4.2.1 安装Diffusers库
#### 4.2.2 Dreambooth-全新的扩散模型
#### 4.2.3 Diffusers核心API
#### 4.3 实战：生成美丽的蝴蝶图片
#### 4.3.1 下载蝴蝶图像集
#### 4.3.2 扩散模型-调度器
#### 4.3.3 定义扩散模型
#### 4.3.4 创建扩散模型训练循环
#### 4.3.5 图像的生成
#### 4.4 拓展知识
#### 4.4.1 将模型上传到Hub上
#### 4.4.2 扩大训练模型的规模
#### 4.5 本章小结

### 第五章 微调和引导
#### 5.1 章节概述
#### 5.2 环境准备
#### 5.3 载入一个预训练过的管线
#### 5.4 DDIM-更快的采样过程
#### 5.5 扩散模型-微调
#### 5.5.1 实战：微调
#### 5.5.2 使用最小化样例脚本微调模型
#### 5.5.3 保存和载入微调过的管线
#### 5.6 扩散模型-引导
#### 5.6.1 实战：引导
#### 5.6.2 CLIP 引导
#### 5.7 分享你的自定义采样训练
#### 5.7.1 环境准备
#### 5.7.2 创建一个以类别为条件的UNet
#### 5.7.3 训练与采样
#### 5.8 本章小结
#### 5.9 实战：创建一个类别条件扩散模型

### 第六章 Stable Diffusion
#### 6.1 章节概述
#### 6.2 环境准备
#### 6.3 从文本生成图像
#### 6.4 Stable Diffusion Pipeline
#### 6.4.1 可变分自编码器(VAE)
#### 6.4.2 分词器(Tokenizer)和文本编码器(Text Encoder)
#### 6.4.3 UNet
#### 6.4.4 调度器(Scheduler)
#### 6.4.5 DIY一个采样循环
#### 6.5 其他管线介绍
#### 6.5.1 Img2Img
#### 6.5.2 In-Painting
#### 6.5.3 Depth2Image
#### 6.5.4 拓展：管理你的模型缓存
#### 6.6 本章小结

### 第七章 DDIM反转与ControlNet
#### 7.1 本章概述
#### 7.2 实战：反转
#### 7.2.1 设置
#### 7.2.2 加载一个已训练的管道 
#### 7.2.3 DDIM采样 
#### 7.2.4 反转
#### 7.3 组合封装
#### 7.4 DDIM小结
#### 7.5 ControlNet的结构与训练过程
#### 7.6 ControlNet示例
#### 7.7 ControlNet实战


### 第八章 音频扩散模型
#### 8.1 本章概述
#### 8.2 实战：音频扩散模型
#### 8.2.1 设置与导入
#### 8.2.2 从预先训练的音频管道采样 
#### 8.2.3 从音频到频谱的转换 
#### 8.2.4 微调管道
#### 8.2.5 循环训练
#### 8.3 将模型上传到Hub上 
#### 8.4 本章小结


## 附录 精美图像集展示
region:us
{}
TAGS
#region-us 

《从零开始学扩散模型》
===========


术语表
---



目录
==


第一部分 基础知识
---------


### 第一章 扩散模型的原理、发展和应用


#### 1.1 扩散模型的原理


#### 1.2 扩散模型的发展


#### 1.3 扩散模型的应用


### 第二章 HuggingFace介绍与环境准备


#### 2.1 HuggingFace Space


#### 2.2 Transformer 与 diffusers 库


#### 2.3 环境准备


第二部分 扩散模型实战
-----------


### 第三章 从零开始做扩散模型


#### 3.1 章节概述


#### 3.2 环境准备


#### 3.2.1 环境的创建与导入


#### 3.2.2 数据集测试


#### 3.3 扩散模型-退化过程


#### 3.4 扩散模型训练


#### 3.4.1 Unet模型


#### 3.4.2 开始训练模型


#### 3.5 扩散模型-采样（取样）过程


#### 3.5.1 采样（取样）过程


#### 3.5.2 与DDPM的区别


#### 3.5.3 UNet2DModel模型


#### 3.6 扩散模型-退化过程示例


#### 3.6.1 退化过程


#### 3.6.2 最终的训练目标


#### 3.7 拓展知识


#### 3.7.1 迭代周期（Timestep）的调节


#### 3.7.2 采样（取样）的关键问题


#### 3.8 本章小结


### 第四章 Diffusers实战


#### 4.1 章节概述


#### 4.2 环境准备


#### 4.2.1 安装Diffusers库


#### 4.2.2 Dreambooth-全新的扩散模型


#### 4.2.3 Diffusers核心API


#### 4.3 实战：生成美丽的蝴蝶图片


#### 4.3.1 下载蝴蝶图像集


#### 4.3.2 扩散模型-调度器


#### 4.3.3 定义扩散模型


#### 4.3.4 创建扩散模型训练循环


#### 4.3.5 图像的生成


#### 4.4 拓展知识


#### 4.4.1 将模型上传到Hub上


#### 4.4.2 扩大训练模型的规模


#### 4.5 本章小结


### 第五章 微调和引导


#### 5.1 章节概述


#### 5.2 环境准备


#### 5.3 载入一个预训练过的管线


#### 5.4 DDIM-更快的采样过程


#### 5.5 扩散模型-微调


#### 5.5.1 实战：微调


#### 5.5.2 使用最小化样例脚本微调模型


#### 5.5.3 保存和载入微调过的管线


#### 5.6 扩散模型-引导


#### 5.6.1 实战：引导


#### 5.6.2 CLIP 引导


#### 5.7 分享你的自定义采样训练


#### 5.7.1 环境准备


#### 5.7.2 创建一个以类别为条件的UNet


#### 5.7.3 训练与采样


#### 5.8 本章小结


#### 5.9 实战：创建一个类别条件扩散模型


### 第六章 Stable Diffusion


#### 6.1 章节概述


#### 6.2 环境准备


#### 6.3 从文本生成图像


#### 6.4 Stable Diffusion Pipeline


#### 6.4.1 可变分自编码器(VAE)


#### 6.4.2 分词器(Tokenizer)和文本编码器(Text Encoder)


#### 6.4.3 UNet


#### 6.4.4 调度器(Scheduler)


#### 6.4.5 DIY一个采样循环


#### 6.5 其他管线介绍


#### 6.5.1 Img2Img


#### 6.5.2 In-Painting


#### 6.5.3 Depth2Image


#### 6.5.4 拓展：管理你的模型缓存


#### 6.6 本章小结


### 第七章 DDIM反转与ControlNet


#### 7.1 本章概述


#### 7.2 实战：反转


#### 7.2.1 设置


#### 7.2.2 加载一个已训练的管道


#### 7.2.3 DDIM采样


#### 7.2.4 反转


#### 7.3 组合封装


#### 7.4 DDIM小结


#### 7.5 ControlNet的结构与训练过程


#### 7.6 ControlNet示例


#### 7.7 ControlNet实战


### 第八章 音频扩散模型


#### 8.1 本章概述


#### 8.2 实战：音频扩散模型


#### 8.2.1 设置与导入


#### 8.2.2 从预先训练的音频管道采样


#### 8.2.3 从音频到频谱的转换


#### 8.2.4 微调管道


#### 8.2.5 循环训练


#### 8.3 将模型上传到Hub上


#### 8.4 本章小结


附录 精美图像集展示
----------



### 第一章 扩散模型的原理、发展和应用 #### 1.1 扩散模型的原理 #### 1.2 扩散模型的发展 #### 1.3 扩散模型的应用 ### 第二章 HuggingFace介绍与环境准备 #### 2.1 HuggingFace Space #### 2.2 Transformer 与 diffusers 库 #### 2.3 环境准备


第二部分 扩散模型实战
----------- ### 第三章 从零开始做扩散模型 #### 3.1 章节概述 #### 3.2 环境准备 #### 3.2.1 环境的创建与导入 #### 3.2.2 数据集测试 #### 3.3 扩散模型-退化过程 #### 3.4 扩散模型训练 #### 3.4.1 Unet模型 #### 3.4.2 开始训练模型 #### 3.5 扩散模型-采样（取样）过程 #### 3.5.1 采样（取样）过程 #### 3.5.2 与DDPM的区别 #### 3.5.3 UNet2DModel模型 #### 3.6 扩散模型-退化过程示例 #### 3.6.1 退化过程 #### 3.6.2 最终的训练目标 #### 3.7 拓展知识 #### 3.7.1 迭代周期（Timestep）的调节 #### 3.7.2 采样（取样）的关键问题 #### 3.8 本章小结 ### 第四章 Diffusers实战 #### 4.1 章节概述 #### 4.2 环境准备 #### 4.2.1 安装Diffusers库 #### 4.2.2 Dreambooth-全新的扩散模型 #### 4.2.3 Diffusers核心API #### 4.3 实战：生成美丽的蝴蝶图片 #### 4.3.1 下载蝴蝶图像集 #### 4.3.2 扩散模型-调度器 #### 4.3.3 定义扩散模型 #### 4.3.4 创建扩散模型训练循环 #### 4.3.5 图像的生成 #### 4.4 拓展知识 #### 4.4.1 将模型上传到Hub上 #### 4.4.2 扩大训练模型的规模 #### 4.5 本章小结 ### 第五章 微调和引导 #### 5.1 章节概述 #### 5.2 环境准备 #### 5.3 载入一个预训练过的管线 #### 5.4 DDIM-更快的采样过程 #### 5.5 扩散模型-微调 #### 5.5.1 实战：微调 #### 5.5.2 使用最小化样例脚本微调模型 #### 5.5.3 保存和载入微调过的管线 #### 5.6 扩散模型-引导 #### 5.6.1 实战：引导 #### 5.6.2 CLIP 引导 #### 5.7 分享你的自定义采样训练 #### 5.7.1 环境准备 #### 5.7.2 创建一个以类别为条件的UNet #### 5.7.3 训练与采样 #### 5.8 本章小结 #### 5.9 实战：创建一个类别条件扩散模型 ### 第六章 Stable Diffusion #### 6.1 章节概述 #### 6.2 环境准备 #### 6.3 从文本生成图像 #### 6.4 Stable Diffusion Pipeline #### 6.4.1 可变分自编码器(VAE) #### 6.4.2 分词器(Tokenizer)和文本编码器(Text Encoder) #### 6.4.3 UNet #### 6.4.4 调度器(Scheduler) #### 6.4.5 DIY一个采样循环 #### 6.5 其他管线介绍 #### 6.5.1 Img2Img #### 6.5.2 In-Painting #### 6.5.3 Depth2Image #### 6.5.4 拓展：管理你的模型缓存 #### 6.6 本章小结 ### 第七章 DDIM反转与ControlNet #### 7.1 本章概述 #### 7.2 实战：反转 #### 7.2.1 设置 #### 7.2.2 加载一个已训练的管道 #### 7.2.3 DDIM采样 #### 7.2.4 反转 #### 7.3 组合封装 #### 7.4 DDIM小结 #### 7.5 ControlNet的结构与训练过程 #### 7.6 ControlNet示例 #### 7.7 ControlNet实战 ### 第八章 音频扩散模型 #### 8.1 本章概述 #### 8.2 实战：音频扩散模型 #### 8.2.1 设置与导入 #### 8.2.2 从预先训练的音频管道采样 #### 8.2.3 从音频到频谱的转换 #### 8.2.4 微调管道 #### 8.2.5 循环训练 #### 8.3 将模型上传到Hub上 #### 8.4 本章小结


附录 精美图像集展示
----------
TAGS
#region-us 
 ### 第一章 扩散模型的原理、发展和应用 #### 1.1 扩散模型的原理 #### 1.2 扩散模型的发展 #### 1.3 扩散模型的应用 ### 第二章 HuggingFace介绍与环境准备 #### 2.1 HuggingFace Space #### 2.2 Transformer 与 diffusers 库 #### 2.3 环境准备


第二部分 扩散模型实战
----------- ### 第三章 从零开始做扩散模型 #### 3.1 章节概述 #### 3.2 环境准备 #### 3.2.1 环境的创建与导入 #### 3.2.2 数据集测试 #### 3.3 扩散模型-退化过程 #### 3.4 扩散模型训练 #### 3.4.1 Unet模型 #### 3.4.2 开始训练模型 #### 3.5 扩散模型-采样（取样）过程 #### 3.5.1 采样（取样）过程 #### 3.5.2 与DDPM的区别 #### 3.5.3 UNet2DModel模型 #### 3.6 扩散模型-退化过程示例 #### 3.6.1 退化过程 #### 3.6.2 最终的训练目标 #### 3.7 拓展知识 #### 3.7.1 迭代周期（Timestep）的调节 #### 3.7.2 采样（取样）的关键问题 #### 3.8 本章小结 ### 第四章 Diffusers实战 #### 4.1 章节概述 #### 4.2 环境准备 #### 4.2.1 安装Diffusers库 #### 4.2.2 Dreambooth-全新的扩散模型 #### 4.2.3 Diffusers核心API #### 4.3 实战：生成美丽的蝴蝶图片 #### 4.3.1 下载蝴蝶图像集 #### 4.3.2 扩散模型-调度器 #### 4.3.3 定义扩散模型 #### 4.3.4 创建扩散模型训练循环 #### 4.3.5 图像的生成 #### 4.4 拓展知识 #### 4.4.1 将模型上传到Hub上 #### 4.4.2 扩大训练模型的规模 #### 4.5 本章小结 ### 第五章 微调和引导 #### 5.1 章节概述 #### 5.2 环境准备 #### 5.3 载入一个预训练过的管线 #### 5.4 DDIM-更快的采样过程 #### 5.5 扩散模型-微调 #### 5.5.1 实战：微调 #### 5.5.2 使用最小化样例脚本微调模型 #### 5.5.3 保存和载入微调过的管线 #### 5.6 扩散模型-引导 #### 5.6.1 实战：引导 #### 5.6.2 CLIP 引导 #### 5.7 分享你的自定义采样训练 #### 5.7.1 环境准备 #### 5.7.2 创建一个以类别为条件的UNet #### 5.7.3 训练与采样 #### 5.8 本章小结 #### 5.9 实战：创建一个类别条件扩散模型 ### 第六章 Stable Diffusion #### 6.1 章节概述 #### 6.2 环境准备 #### 6.3 从文本生成图像 #### 6.4 Stable Diffusion Pipeline #### 6.4.1 可变分自编码器(VAE) #### 6.4.2 分词器(Tokenizer)和文本编码器(Text Encoder) #### 6.4.3 UNet #### 6.4.4 调度器(Scheduler) #### 6.4.5 DIY一个采样循环 #### 6.5 其他管线介绍 #### 6.5.1 Img2Img #### 6.5.2 In-Painting #### 6.5.3 Depth2Image #### 6.5.4 拓展：管理你的模型缓存 #### 6.6 本章小结 ### 第七章 DDIM反转与ControlNet #### 7.1 本章概述 #### 7.2 实战：反转 #### 7.2.1 设置 #### 7.2.2 加载一个已训练的管道 #### 7.2.3 DDIM采样 #### 7.2.4 反转 #### 7.3 组合封装 #### 7.4 DDIM小结 #### 7.5 ControlNet的结构与训练过程 #### 7.6 ControlNet示例 #### 7.7 ControlNet实战 ### 第八章 音频扩散模型 #### 8.1 本章概述 #### 8.2 实战：音频扩散模型 #### 8.2.1 设置与导入 #### 8.2.2 从预先训练的音频管道采样 #### 8.2.3 从音频到频谱的转换 #### 8.2.4 微调管道 #### 8.2.5 循环训练 #### 8.3 将模型上传到Hub上 #### 8.4 本章小结


附录 精美图像集展示
----------
passage: TAGS
#region-us 
### 第一章 扩散模型的原理、发展和应用#### 1.1 扩散模型的原理#### 1.2 扩散模型的发展#### 1.3 扩散模型的应用### 第二章 HuggingFace介绍与环境准备#### 2.1 HuggingFace Space#### 2.2 Transformer 与 diffusers 库#### 2.3 环境准备


第二部分 扩散模型实战
-----------### 第三章 从零开始做扩散模型#### 3.1 章节概述#### 3.2 环境准备#### 3.2.1 环境的创建与导入#### 3.2.2 数据集测试#### 3.3 扩散模型-退化过程#### 3.4 扩散模型训练#### 3.4.1 Unet模型#### 3.4.2 开始训练模型#### 3.5 扩散模型-采样（取样）过程#### 3.5.1 采样（取样）过程#### 3.5.2 与DDPM的区别#### 3.5.3 UNet2DModel模型#### 3.6 扩散模型-退化过程示例#### 3.6.1 退化过程#### 3.6.2 最终的训练目标#### 3.7 拓展知识#### 3.7.1 迭代周期（Timestep）的调节#### 3.7.2 采样（取样）的关键问题#### 3.8 本章小结### 第四章 Diffusers实战#### 4.1 章节概述#### 4.2 环境准备#### 4.2.1 安装Diffusers库#### 4.2.2 Dreambooth-全新的扩散模型#### 4.2.3 Diffusers核心API#### 4.3 实战：生成美丽的蝴蝶图片#### 4.3.1 下载蝴蝶图像集#### 4.3.2 扩散模型-调度器#### 4.3.3 定义扩散模型#### 4.3.4 创建扩散模型训练循环#### 4.3.5 图像的生成#### 4.4 拓展知识#### 4.4.1 将模型上传到Hub上#### 4.4.2 扩大训练模型的规模#### 4.5 本章小结### 第五章 微调和引导#### 5.1 章节概述#### 5.2 环境准备#### 5.3 载入一个预训练过的管线#### 5.4 DDIM-更快的采样过程#### 5.5 扩散模型-微调