# 【生成式AI】淺談圖像生成模型 Diffusion Model 原理 本講主要介紹 **Diffusion Model**(擴散模型)的核心運作機制,特別聚焦於經典的 **DDPM (Denoising Diffusion Probabilistic Model)** 架構。內容涵蓋了圖像生成的「反向過程 (Reverse Process)」、模型內部的「雜訊預測器 (Noise Predictor)」設計理由、訓練資料的構建方式(Forward Process),以及如何引入文字條件(Text Conditioning)來實現文生圖功能。同時也探討了支撐現代 AI(如 Stable Diffusion, DALL-E)背後的龐大數據集(LAION)。 <br> ## 01. 擴散模型的推論過程 (Inference / Reverse Process) ### 01-01. 核心概念與知名應用 * **核心定位**:Diffusion Model 是目前影像生成領域的主流技術,知名的系統如 DALL-E、Google Imagen、Stable Diffusion 皆基於類似的原理(主要是 DDPM 的變形)。 * **生成起點**:生成一張圖片的第一步是從 **Gaussian Distribution (常態分佈)** 中採樣出一個全是雜訊的向量 (Vector)。 * **維度對應**:採樣出的向量維度必須與目標圖片大小一致(例如:若要生成 $256 \times 256$ 的圖片,就要採樣 $256 \times 256$ 的雜訊矩陣)。 ### 01-02. 去噪過程 (Denoise) * **運作機制**:將雜訊向量輸入一個 **Denoise Network**,它會濾除部分雜訊。重複多次後,原本的雜訊圖會逐漸浮現出物體輪廓(如貓的形狀),最終變成清晰圖片。 * **步驟編號 (Step ID)**: 1. 整個去噪過程是分步驟進行的,我們給每個步驟一個編號。 2. 編號通常從大到小排列(例如從 Step 1000 到 Step 1),Step 1000 代表剛開始全是雜訊,Step 1 代表最後一步,接近完成圖。 ![截圖 2026-01-27 下午3.24.48](https://hackmd.io/_uploads/rkhSO1L8Zl.png) * **術語定義**:這個從「雜訊」還原回「圖片」的過程稱為 **Reverse Process**。 :::info 💡 **舉例:米開朗吉羅的雕刻哲學** 講者引用米開朗吉羅的名言:「雕像本來就在大理石裡面,我只是把不要的部分拿掉。」 * **類比**:Diffusion Model 做的事情一模一樣。圖片本來就藏在雜訊裡,模型只是負責把「構成雜訊」的部分濾除。 * **講者實測**:講者曾嘗試用 Midjourney 畫出「大衛像藏在石頭裡」的意境,但因詠唱(Prompting)技巧不足,未能完美呈現,這也側面說明了文字與圖像對應的複雜性。 ::: <br> ## 02. 去噪模型的內部架構 (Denoise Model Architecture) ### 02-01. 模型的共用與條件輸入 * **單一模型重複使用**:在整個 Reverse Process 中,我們使用的是**同一個** Denoise Model,並非每個步驟用不同模型。 * **輸入差異問題**:由於 Step 1000(純雜訊)與 Step 1(微小雜訊)的輸入差異極大,單一模型難以直接處理。 * **解決方案**:模型除了接收「當前的圖片」外,還必須接收一個 **Step ID (Time Step)**。 1. 輸入 `1000`:告訴模型現在雜訊非常嚴重。 2. 輸入 `1`:告訴模型現在雜訊很小,只需微調。 ![截圖 2026-01-27 下午3.26.55](https://hackmd.io/_uploads/Hyqp_JU8Wg.png) ### 02-02. 核心組件:雜訊預測器 (Noise Predictor) * **運作邏輯**:Denoise Model 內部並非直接輸出「去噪後的乾淨圖」,而是包含一個 **Noise Predictor**。 1. **輸入**:(1) 含雜訊的圖片 + (2) Step ID。 2. **輸出**:預測這張圖裡「包含了什麼樣的雜訊」。 3. **最終計算**:`去噪結果 = 原圖 - 預測出的雜訊`。 ![截圖 2026-01-27 下午3.28.04](https://hackmd.io/_uploads/SyGGYy8L-g.png) * **設計理由**:為什麼不直接預測乾淨圖 (End-to-End)? 1. 直接畫出一隻貓(生成圖片)很難。 2. 但從雜訊圖中「預測雜訊長什麼樣」相對簡單。 3. 目前學界主流作法多採用 Noise Predictor,因為訓練難度較低。 :::info 💡 **舉例:任務難度的差異** * **End-to-End**:就像要求你在一張白紙上直接畫出一隻完美的貓。 * **Noise Predictor**:就像給你看一張充滿雜點的貓,問你「哪些點是雜點?」,你只需要把這些點挑出來即可。後者顯然比無中生有更容易學習。 ::: <br> ## 03. 模型的訓練方法 (Training / Forward Process) ### 03-01. 訓練資料的製造 (Diffusion Process) * **需求**:訓練 Noise Predictor 需要「有雜訊的圖」當輸入,以及「該雜訊的真值 (Ground Truth)」當標準答案。 * **Forward Process (擴散過程)**: 1. 從資料庫拿出一張乾淨圖片。 2. 隨機從 Gaussian Distribution 採樣雜訊加入圖片。 3. 重複加噪,直到圖片變成完全無法辨識的純雜訊。 ![截圖 2026-01-27 下午3.29.09](https://hackmd.io/_uploads/HkMIF1LIZe.png) * **資料成對 (Pairing)**: 1. **Input**:加噪後的圖片 + Step ID (例如第 2 步)。 2. **Ground Truth (Label)**:剛剛「加進去的那組雜訊」。 ![截圖 2026-01-27 下午3.29.51](https://hackmd.io/_uploads/HJg0uKkIIZx.png) ### 03-02. 訓練目標 * 告訴模型:「當你看到這張加噪圖 (Input) 且知道現在是第幾步 (Step ID) 時,你要吐出這個雜訊 (Output)。」 * 透過一般的 Network Training 流程(如 Minimize Loss)進行訓練。 <br> ## 04. 文字生成圖片 (Text-to-Image) ### 04-01. 數據集的規模與重要性 (Dataset Scale) * **成對資料需求**:要訓練文生圖模型,必須擁有大量的「圖片-文字」成對資料。 * **ImageNet vs. LAION**: 1. **ImageNet**:約 100 萬張圖,僅有類別標籤(如 "Cat"),缺乏詳細描述。 2. **LAION**:現代模型(Stable Diffusion, Midjourney)的主要數據來源。 * 擁有 **58.5 億 (5.85 Billion)** 張圖片。 * 包含多語言對應(中、日、英等)及各種內容(包括名人照片)。 ![截圖 2026-01-27 下午3.31.48](https://hackmd.io/_uploads/Skgl5kL8bx.png) * **現象解釋**:為何模型認得川普或看得懂中文?因為 LAION 數據集裡什麼都有,模型在訓練時已經看過這些關聯。 ### 04-02. 整合文字條件 (Text Conditioning) * **推論階段 (Inference)**: 1. Denoise Model 增加第三個輸入:**文字敘述 (Text Prompt)**。 ![截圖 2026-01-27 下午3.32.38](https://hackmd.io/_uploads/ByBQ5kIL-e.png) 3. Noise Predictor 根據 (1) 圖片、(2) Step ID、(3) 文字,來預測雜訊。 ![截圖 2026-01-27 下午3.33.25](https://hackmd.io/_uploads/BkGU9kULWe.png) * **訓練階段 (Training)**: 1. 準備含有文字描述的圖片數據。 2. 對圖片做 Forward Process 加噪。 3. **輸入**:加噪圖 + Step ID + **對應的文字**。 4. **目標**:預測雜訊。 ![截圖 2026-01-27 下午3.33.52](https://hackmd.io/_uploads/Bk6w9JUIZg.png) * **總結**:DDPM 的演算法本質上就是「預測雜訊並扣除」,加入文字只是多了一個參考條件 (Condition)。 ![截圖 2026-01-27 下午3.34.15](https://hackmd.io/_uploads/HJQF5yIIZl.png) <br> ## 🎯 總結與行動 (Key Takeaways) * **關鍵術語表**: 1. **Reverse Process**:從雜訊逐步還原成圖片的過程(推論/生成)。 2. **Forward Process (Diffusion Process)**:對乾淨圖逐步加噪以製造訓練資料的過程。 3. **Noise Predictor**:Diffusion Model 的核心神經網路,負責預測圖片中的雜訊分佈,而非直接生成圖片。 4. **LAION**:包含 58.5 億張圖文對應的超大規模數據集,是現代生成式 AI 的基石。 * **一句話總結**:Diffusion Model 透過學習「如何預測並去除雜訊」(Reverse Process),並利用龐大的圖文數據集(如 LAION)作為知識庫,將隨機雜訊一步步雕刻成符合文字描述的清晰影像。