Diffusion AI繪圖模型構造與訓練實戰

李福林

  • 出版商: 清華大學
  • 出版日期: 2024-03-01
  • 售價: $474
  • 貴賓價: 9.5$450
  • 語言: 簡體中文
  • ISBN: 7302654506
  • ISBN-13: 9787302654506
  • 立即出貨 (庫存 < 3)

  • Diffusion AI繪圖模型構造與訓練實戰-preview-1
  • Diffusion AI繪圖模型構造與訓練實戰-preview-2
  • Diffusion AI繪圖模型構造與訓練實戰-preview-3
Diffusion AI繪圖模型構造與訓練實戰-preview-1

商品描述

本書是對DiffusionAI繪圖模型的綜合性講解書籍,書中包括最基礎的組件的用例演示,也包括具體的項目實戰,以及Diffusion模型的底層設計思路和實現原理的介紹。通過本書的學習,讀者可以快速掌握Diffusion模型的使用方法,掌握AI繪圖模型的訓練、測試過程,並能研發屬於自己的AI繪圖模型。 本書共19章,分為快速上手篇(第1~2章),概述了Diffusion模型的發展歷史,介紹了開發環境的部署方法,以及Diffusion模型的快速上手演示。以文生圖的Diffusion模型的訓練方法篇(第3~7章),通過5個實戰任務演示使用高層API的方法快速訓練Diffusion模型。圖像生成模型的歷史發展篇(第8~12章),演示了前Diffusion時代的幾個代表性的圖像生成模型。以圖生圖的Diffusion模型的訓練方法篇(第13~15章),通過3個實戰項目演示了以圖生圖的Diffusion模型的訓練方法。以圖生圖模型的歷史發展篇(第16~18章),演示了前Diffusion時代的幾個以圖生圖模型。完全手動構造Diffusion模型篇(第19章),演示了從零開始的Diffusion模型的搭建、訓練、測試方法。 本書將使用最簡單淺顯的語言,帶領讀者快速地瞭解Diffusion模型的訓練、測試方法。通過本書中實戰項目的學習,讀者可以掌握一般的AI繪圖模型的研發流程。通過本書中Diffusion模型底層原理的學習,能夠讓讀者知其然也知其所以然,做到融會貫通。

目錄大綱

目錄

第1章介紹Diffusion模型的發展歷程,以及本書中相關任務的訓練方法。

第2章介紹開發環境的配置,並且快速上手Diffusion模型的使用。

第3章介紹不定圖像的生成任務。

第4章介紹文本訓練方法。

第5章介紹Dream Booth訓練方法。

第6章介紹圖文結合的訓練方法。

第7章介紹使用LoRA技巧加速訓練。

第8章介紹AE模型。

第9章介紹VAE模型。

第10章介紹DCGAN模型。

第11章介紹WGANGP模型。

第12章手動構造一個沒有文本輸入的Diffusion模型。

第13章介紹ControlNet組件。

第14章介紹Instruct Pix2Pix訓練方法。

第15章介紹正負樣本混合訓練方法。

第16章介紹Pix2Pix模型。

第17章介紹CycleGAN模型。

第18章介紹風格遷移任務。

第19章手動構建一個完整的Diffusion模型。

閱讀建議

本書是一本對Diffusion模型進行綜合性講解的書籍,既有基礎知識,也有實戰示例,也包括底層原理的講解。

本書盡量以簡潔的語言書寫,每個章節之間的內容盡量獨立,使讀者可以跳躍閱讀而沒有障礙。

作為一本實戰型書籍,讀者要掌握本書的知識,務必要結合代碼調試,本書的代碼也盡量以簡潔的形式書寫,使讀者閱讀時不感吃力。每個代碼塊即是一個測試單元,讀者可以對每個程序的每個代碼塊按從上到下的順序進行測試,從一個個小知識點聚沙成塔,融會貫通。

資源下載提示

素材(源碼)等資源: 掃描封底的文泉雲盤防盜碼,再掃描目錄上方的二維碼下載。

致謝

感謝HuggingFace社區無私的奉獻,因為有了你們的工作成果,本書才得以以簡潔、標準化的API面世。

在書寫本書的過程中,我竭盡所能為讀者呈現最好的內容,錯漏難免會存在,敬請讀者批評指正。

李福林2023年11月

本書源碼

快速上手篇

第1章Diffusion模型3

1.1Diffusion模型介紹3

1.1.1Diffusion模型的演化之路4

1.1.2圖像以外的應用6

1.1.3其他的繪圖模型6

1.2微調預訓練模型6

1.2.1預訓練模型6

1.2.2微調模型以適應新數據7

1.2.3微調相比重新訓練的優勢7

1.3小結8

第2章快速上手9

2.1部署開發環境9

2.2HuggingFace簡介和快速上手11

2.2.1快速上手11

2.2.2加速技巧12

2.3Diffusion模型相關組件介紹13

2.3.1tokenizer13

2.3.2scheduler15

2.3.3Encoder16

2.3.4VAE17

2.3.5UNet18

2.4小結20

訓練方法篇

第3章不定圖像的生成23

3.1任務簡介23

3.2數據集介紹23

3.3測試部分24

3.3.1測試函數24

3.3.2未訓練模型的測試結果25

3.3.3訓練後模型的測試結果27

3.4訓練部分28

3.4.1全局常量28

3.4.2定義數據集28

3.4.3定義模型30

3.4.4初始化工具類31

3.4.5計算loss32

3.4.6訓練34

3.5小結35

第4章文本訓練36

4.1任務簡介36

4.2數據集介紹36

4.3測試部分37

4.3.1測試函數37

4.3.2未訓練模型的測試結果38

4.3.3訓練後模型的測試結果39

4.4訓練部分39

4.4.1全局常量39

4.4.2定義數據集39

4.4.3定義模型44

4.4.4初始化工具類47

4.4.5計算loss47

4.4.6訓練50

4.5小結51

第5章Dream Booth53

5.1任務簡介53

5.2數據集介紹53

5.3測試部分54

5.3.1測試函數54

5.3.2未訓練模型的測試結果55

5.3.3訓練後模型的測試結果55

5.4訓練部分56

5.4.1全局常量56

5.4.2定義數據集56

5.4.3定義模型60

5.4.4初始化工具類61

5.4.5計算loss61

5.4.6訓練62

5.5小結64

第6章圖文結合的訓練65

6.1任務簡介65

6.2數據集介紹65

6.3測試部分66

6.3.1測試函數67

6.3.2未訓練模型的測試結果68

6.3.3訓練後模型的測試結果68

6.4訓練部分69

6.4.1全局常量69

6.4.2定義數據集69

6.4.3定義模型73

6.4.4初始化工具類73

6.4.5計算loss74

6.4.6訓練75

6.5小結77

第7章LoRA Dream Booth78

7.1任務簡介78

7.2數據集介紹79

7.3測試部分79

7.3.1測試函數79

7.3.2未訓練模型的測試結果80

7.3.3訓練後模型的測試結果80

7.4訓練部分81

7.4.1全局常量81

7.4.2定義數據集81

7.4.3定義模型84

7.4.4初始化工具類87

7.4.5計算loss87

7.4.6訓練88

7.5小結89

圖像生成模型的歷史發展篇

第8章AE模型93

8.1模型原理介紹93

8.2鮮花數據集介紹94

8.3定義數據集95

8.4定義神經網絡模型98

8.4.1定義Block工具層98

8.4.2定義Encoder和Decoder100

8.5訓練101

8.5.1訓練前的準備工作101

8.5.2執行訓練102

8.6測試104

8.6.1測試本地訓練的模型104

8.6.2使用訓練好的模型測試105

8.7小結105

第9章VAE模型106

9.1AE模型的缺陷106

9.2定義神經網絡模型107

9.3訓練108

9.3.1訓練前的準備工作108

9.3.2執行訓練109

9.4測試111

9.4.1測試本地訓練的模型111

9.4.2使用訓練好的模型測試111

9.5小結113

第10章DCGAN模型114

10.1模型原理介紹114

10.2定義神經網絡模型115

10.2.1定義CLS模型115

10.2.2定義GEN模型116

10.3訓練117

10.3.1訓練前的準備工作117

10.3.2訓練CLS模型的函數118

10.3.3訓練GEN模型的函數119

10.3.4執行訓練120

10.4測試122

10.4.1測試本地訓練的模型122

10.4.2使用訓練好的模型測試122

10.5小結123

第11章WGANGP模型124

11.1模型原理介紹124

11.2定義神經網絡模型125

11.3訓練126

11.3.1訓練前的準備工作126

11.3.2訓練CLS模型的函數127

11.3.3執行訓練128

11.4測試130

11.4.1測試本地訓練的模型130

11.4.2使用訓練好的模型測試130

11.5小結131

第12章Diffusion模型132

12.1模型原理介紹132

12.2定義神經網絡模型134

12.3定義圖像生成函數142

12.4訓練144

12.5測試146

12.6小結147

訓練方法篇

第13章ControlNet以圖生圖151

13.1任務簡介151

13.2數據集介紹153

13.3測試部分154

13.3.1測試函數155

13.3.2未訓練模型的測試結果156

13.3.3訓練後模型的測試結果158

13.4訓練部分159

13.4.1全局常量159

13.4.2定義數據集159

13.4.3定義ControlNet模型162

13.4.4定義模型168

13.4.5初始化工具類169

13.4.6計算loss169

13.4.7訓練171

13.5小結172

第14章Instruct Pix2Pix圖像調整173

14.1任務簡介173

14.2數據集介紹174

14.3測試部分175

14.3.1加載數據集175

14.3.2測試函數176

14.4訓練部分179

14.4.1全局常量179

14.4.2定義數據集180

14.4.3定義模型181

14.4.4初始化工具類182

14.4.5計算loss183

14.4.6訓練186

14.5小結187

第15章正、負樣本混合訓練188

15.1任務簡介188

15.2數據集介紹188

15.3測試部分190

15.3.1配置環境190

15.3.2測試函數191

15.3.3未訓練模型的測試結果191

15.3.4訓練後模型的測試結果192

15.4訓練部分193

15.4.1全局常量193

15.4.2定義數據集193

15.4.3定義模型200

15.4.4初始化工具類203

15.4.5計算loss203

15.4.6訓練206

15.5小結207

以圖生圖模型的歷史發展篇

第16章Pix2Pix模型211

16.1任務介紹211

16.2數據集介紹212

16.3定義數據集213

16.4定義神經網絡模型216

16.4.1定義CLS模型217

16.4.2定義殘差連接層217

16.4.3定義GEN模型218

16.5訓練220

16.5.1訓練前的準備工作220

16.5.2訓練CLS的函數221

16.5.3訓練GEN的函數222

16.5.4執行訓練223

16.6測試226

16.6.1測試本地訓練的模型226

16.6.2使用訓練好的模型測試228

16.7小結228

第17章CycleGAN模型230

17.1模型原理介紹230

17.2數據集介紹231

17.3定義數據集232

17.4定義神經網絡模型234

17.4.1定義CLS模型234

17.4.2定義GEN模型235

17.5訓練237

17.5.1訓練前的準備工作237

17.5.2訓練CLS的函數238

17.5.3訓練GEN的函數239

17.5.4執行訓練242

17.6測試243

17.6.1測試本地訓練的模型243

17.6.2使用訓練好的模型測試244

17.7小結245

Diffusion模型篇

第18章風格遷移249

18.1模型原理介紹249

18.1.1針對單張圖片的風格遷移249

18.1.2基於神經網絡模型的風格遷移250

18.1.3風格遷移模型的訓練方法250

18.1.4數據部分251

18.2定義神經網絡模型252

18.2.1定義CLS模型254

18.2.2定義抽取內容特徵的函數254

18.2.3定義抽取風格特徵的函數255

18.2.4加載風格圖片特徵256

18.3訓練257

18.3.1訓練前的準備工作257

18.3.2執行訓練257

18.4測試259

18.4.1測試本地訓練的模型259

18.4.2使用訓練好的模型測試260

18.5小結260

第19章手動構建Diffusion模型261

19.1模型原理介紹261

19.2Encoder模型263

19.2.1編碼層263

19.2.2註意力層264

19.2.3編碼器層266

19.2.4Encoder模型268

19.2.5載入參數268

19.2.6試算270

19.3VAE模型270

19.3.1殘差連接層270

19.3.2註意力層272

19.3.3Pad工具層274

19.3.4VAE模型275

19.3.5載入參數278

19.3.6試算280

19.4UNet模型281

19.4.1模型結構281

19.4.2殘差連接層282

19.4.3註意力層284

19.4.4Transformers層286

19.4.5down層289

19.4.6up層290

19.4.7UNet模型291

19.4.8載入參數296

19.4.9試算298

19.5訓練299

19.5.1加載工具類299

19.5.2定義數據集300

19.5.3定義模型303

19.5.4計算loss304

19.5.5執行訓練305

19.6測試306

19.6.1定義生成函數306

19.6.2定義測試函數308

19.6.3測試未訓練的模型309

19.6.4測試訓練好的模型310

19.7小結311