內容簡介
AIGC的應用領域日益廣泛,而在圖像生成領域,擴散模型則是AIGC技術的一個重要應用。本書以擴散模型理論知識為切入點,由淺入深地介紹了擴散模型的相關知識,並以大量生動有趣的實戰案例幫助讀者理解擴散模型的相關細節。全書共8章,詳細介紹了擴散模型的原理,以及擴散模型退化、採樣、DDIM反轉等重要概念與方法,此外還介紹了Stable Diffusion、ControlNet與音頻擴散模型等內容。最後,附錄提供由擴散模型生成的高質量圖像集以及Hugging Face社區的相關資源。
本書既適合所有對擴散模型感興趣的AI研究人員、相關科研人員以及在工作中有繪圖需求的從業人員閱讀,也可以作為計算機等相關專業學生的參考書。
作者簡介
李忻瑋,碩士畢業於美國常春藤盟校之一的哥倫比亞大學數據科學專業,現任聲網人工智能演算法工程師;主要研究方向是生成式人工智能、計算機視覺、自然語言處理、提示工程等。
蘇步升,擴散模型演算法工程師,AIGC創業者,Hugging Face中國社區本地化工作組成員。
徐浩然,畢業於中國海洋大學電子信息工程專業,現任聲網音頻演算法工程師,從事揚聲器聲學設計、音頻增強演算法、音頻質量評估演算法等研究工作。
余海銘,本科畢業於暨南大學,碩士畢業於加州大學爾灣分校;先後在中國科學院深圳先進技術研究院、愛奇藝、美團等單位工作;主要研究方向是圖像識別、圖像生成、多模態及自動駕駛等領域。
精彩書評
本書系統地介紹了擴散模型的原理和相關細節,同時書中豐富的實戰案例也將引領讀者快速上手擴散模型。對於任何想要學習和了解擴散模型的人來說,本書都是頗具價值的參考資料。
——周明,瀾舟科技創辦人兼CEO,創新工場科學家,CCF副理事長
受非平衡熱力學的啟發,擴散模型以良好的數學解釋性及可控的生成多樣性快速成為AIGC領域一顆耀眼的新星。本書從「一滴墨水」開始,由淺入深,從理論到實踐「擴散」出了圖像、文本與音頻的AIGC藍圖,併為讀者保留了精華,去除了「雜訊」,還原出了知識體系真實的「分佈」。
——楊耀東,北京大學人工智能研究院研究員
人工智能擴散模型在近幾年取得了令人目不暇接的驚艷成果,可以有效解決視覺內容生成的瓶頸問題。仔細閱讀本書,你既可以對擴散模型背後的原理有較為深刻的理解,也可以依此動手進行實踐,從而牢固掌握擴散模型,為進一步創新或深度應用打下堅實基礎。本書值得推薦!
——鐘聲,聲網CTO
縱觀人類歷史,機遇屬於搶先一步佔據未來高度的人。我們每一個人都有必要去探究人工智能的奧秘,以便在即將到來的變革大潮中爭得一席之地。
——馬伯庸,作家
《擴散模型從原理到實戰》以Hugging Face的擴散模型(Diffusion Model)課程為基礎,通過理論和實例相結合的方式,為讀者構建了一個完整的學習框架。無論你是新手還是經驗豐富的從業者,這本以實戰為導向的圖書都能夠幫助你更好地理解和應用擴散模型。
——王鐵震,Hugging Face中國地區負責人,高級工程師
隨著Stable Diffusion和Midjourney的推出,文生圖形式的AI繪畫火爆異常,很多遊戲的角色設計、網上店鋪的頁面設計都用到了AI繪畫工具。本書系統地梳理了AI繪畫背後的一系列原理細節,且有代碼實戰,我非常推薦大家閱讀本書!
——July,七月在線創辦人,CEO
目錄
第 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
詳細資料或其他書籍請至台灣高等教育出版社查詢,查後請於客服中心或Line或本社留言板留言,我們即儘速上架。