猜你喜欢
扩散模型从原理到实战

扩散模型从原理到实战

书籍作者:李忻玮 ISBN:9787115618870
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:3226
创建日期:2024-04-08 发布日期:2024-04-08
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

AIGC的应用领域日益广泛,而在图像生成领域,扩散模型则是AIGC技术的一个重要应用。本书以扩散模型理论知识为切入点,由浅入深地介绍了扩散模型的相关知识,并以大量生动有趣的实战案例帮助读者理解扩散模型的相关细节。全书共8章,详细介绍了扩散模型的原理,以及扩散模型退化、采样、DDIM反转等重要概念与方法,此外还介绍了Stable Diffusion、ControlNet与音频扩散模型等内容。最后,附录提供由扩散模型生成的高质量图像集以及Hugging Face社区的相关资源。

  本书既适合所有对扩散模型感兴趣的AI研究人员、相关科研人员以及在工作中有绘图需求的从业人员阅读,也可以作为计算机等相关专业学生的参考书。


作者简介

李忻玮,硕士毕业于美国常春藤盟校之一的哥伦比亚大学数据科学专业,现任声网人工智能算法工程师;主要研究方向是生成式人工智能、计算机视觉、自然语言处理、提示工程等。


苏步升,扩散模型算法工程师,AIGC创业者,Hugging Face中国社区本地化工作组成员。


徐浩然,毕业于中国海洋大学电子信息工程专业,现任声网音频算法工程师,从事扬声器声学设计、音频增强算法、音频质量评估算法等研究工作。


余海铭,本科毕业于暨南大学,硕士毕业于加州大学尔湾分校;先后在中国科学院深圳先进技术研究院、爱奇艺、美团等单位工作;主要研究方向是图像识别、图像生成、多模态及自动驾驶等领域。


编辑推荐
适读人群 :本书适合所有对扩散模型感兴趣的AI研究人员、相关科研人员以及在工作中有绘图需求的从业人员阅读。本书也适合计算机等相关专业的学生阅读。阅读本书需要具备基本的编程能力。

(1)读者们呼唤的书来啦——AIGC的需求量日益庞大,而本书是市面上较少地讲解扩散模型理论与实战的图书。

(2)内容深入浅出——从基础的理论知识出发,循序渐进地带领读者理解扩散模型及其应用。

(3)知识点靠谱——本书基于国外Hugging Face开源社区的直播课程进行编写,作者均是国内AI领域资深从业者。

(4)作者经验丰富——Huggingface总部位于纽约,是一家专注于自然语言处理、人工智能和分布式系统的创业公司,拥有大型的开源社区。其在github上开源的自然语言处理,预训练模型库Transformers,已被下载超过一百万次,github上超过24000个star。Transformers模型库提供了NLP领域大量state-of-art的预训练语言模型结构的模型和调用框架。


目录

第 1章 扩散模型简介 1

1.1 扩散模型的原理 1

1.1.1 生成模型 1

1.1.2 扩散过程 2

1.2 扩散模型的发展 5

1.2.1 开始扩散:基础扩散模型的提出与改进 6

1.2.2 加速生成:采样器 6

1.2.3 刷新纪录:基于显式分类器引导的扩散模型 7

1.2.4 引爆网络:基于CLIP的多模态图像生成 8

1.2.5 再次“出圈”:大模型的“再学习”方法——DreamBooth、LoRA和ControlNet 8

1.2.6 开启AI作画时代:众多商业公司提出成熟的图像生成解决方案 10

1.3 扩散模型的应用 12

1.3.1 计算机视觉  12

1.3.2 时序数据预测 14

1.3.3 自然语言 15

1.3.4 基于文本的多模态 16

1.3.5 AI基础科学 19

第 2章 Hugging Face简介 21

2.1 Hugging Face核心功能介绍 21

2.2 Hugging Face开源库 28

2.3 Gradio工具介绍 30

第3章 从零开始搭建扩散模型 33

3.1 环境准备 33

3.1.1 环境的创建与导入 33

3.1.2 数据集测试 34

3.2 扩散模型之退化过程 34

3.3 扩散模型之训练 36

3.3.1  UNet网络 36

3.3.2 开始训练模型 38

3.4 扩散模型之采样过程 41

3.4.1 采样过程 41

3.4.2 与DDPM的区别 44

3.4.3 UNet2DModel模型 44

3.5 扩散模型之退化过程示例 57

3.5.1 退化过程 57

3.5.2 最终的训练目标 59

3.6 拓展知识 60

3.6.1 时间步的调节 60

3.6.2 采样(取样)的关键问题 61

3.7 本章小结 61

第4章 Diffusers实战 62

4.1 环境准备 62

4.1.1 安装Diffusers库 62

4.1.2 DreamBooth 64

4.1.3 Diffusers核心API 66

4.2 实战:生成美丽的蝴蝶图像 67

4.2.1 下载蝴蝶图像集 67

4.2.2 扩散模型之调度器 69

4.2.3 定义扩散模型 70

4.2.4 创建扩散模型训练循环 72

4.2.5 图像的生成 75

4.3 拓展知识 77

4.3.1 将模型上传到Hugging Face Hub  77

4.3.2 使用Accelerate库扩大训练模型的规模 79

4.4 本章小结 81

第5章 微调和引导 83

5.1 环境准备 86

5.2 载入一个预训练过的管线 87

5.3 DDIM——更快的采样过程 88

5.4 扩散模型之微调 91

5.4.1 实战:微调 91

5.4.2 使用一个最小化示例程序来微调模型 96

5.4.3 保存和载入微调过的管线 97

5.5 扩散模型之引导 98

5.5.1 实战:引导 100

5.5.2 CLIP引导 104

5.6 分享你的自定义采样训练 108

5.7 实战:创建一个类别条件扩散模型 111

5.7.1 配置和数据准备 111

5.7.2 创建一个以类别为条件的UNet模型 112

5.7.3 训练和采样 114

5.8 本章小结 117

第6章 Stable Diffusion 118

6.1 基本概念 118

6.1.1 隐式扩散 118

6.1.2 以文本为生成条件 119

6.1.3 无分类器引导 121

6.1.4 其他类型的条件生成模型:Img2Img、Inpainting与Depth2Img模型  122

6.1.5 使用DreamBooth进行微调 123

6.2 环境准备 124

6.3 从文本生成图像 125

6.4 Stable Diffusion Pipeline 128

6.4.1 可变分自编码器 128

6.4.2 分词器和文本编码器 129

6.4.3 UNet 131

6.4.4 调度器 132

6.4.5 DIY采样循环 134

6.5 其他管线介绍 136

6.5.1 Img2Img 136

6.5.2 Inpainting 138

6.5.3 Depth2Image 139

6.6 本章小结 140

第7章 DDIM反转 141

7.1 实战:反转 141

7.1.1 配置 141

7.1.2 载入一个预训练过的管线 142

7.1.3 DDIM采样 143

7.1.4 反转 147

7.2 组合封装 153

7.3 ControlNet的结构与训练过程 158

7.4 ControlNet示例 162

7.4.1 ControlNet与Canny Edge 162

7.4.2 ControlNet与M-LSD Lines 162

7.4.3 ControlNet与HED Boundary 163

7.4.4 ControlNet与涂鸦画 164

7.4.5 ControlNet与人体关键点 164

7.4.6 ControlNet与语义分割 164

7.5 ControlNet实战 165

7.6 本章小结 174

第8章 音频扩散模型 175

8.1 实战:音频扩散模型 175

8.1.1 设置与导入 175

8.1.2 在预训练的音频扩散模型管线中进行采样 176

8.1.3 从音频到频谱的转换 177

8.1.4 微调管线 180

8.1.5 训练循环 183

8.2 将模型上传到Hugging Face Hub 186

8.3 本章小结 187

附录A 精美图像集展示 188

附录B Hugging Face相关资源 202


产品特色