前言#
本文簡單記錄一下個人在研究 stable diffusion 中的過程中對擴散模型(diffusion model)的工作原理和模型結構的學習。
正文#
一、Stable Diffusion 模型構成#
stable diffusion 由三個部分組成:文本特徵提取模型、圖像特徵編解碼模型、噪聲預測模型。
裡面用到的最基礎神經網絡結構包括 Transformer 和 ResNet。
-
文本特徵提取模型
Text Encoder 是一個基於 Transformer 的語言模型,比如 ClipText、BERT 等,對輸入的文本 prompts 生成 token embeddings,作用就是理解輸入的提示文本信息,並得到高維特徵,指導後續的噪聲預測模型的預測方向。
-
圖像特徵編解碼模型
這裡的編解碼由 Image Encoder 和 Image Decoder 組成,分別用在訓練和推理階段中,在訓練階段,會使用 Image Encoder 和 Text Encoder 配對訓練,用於匹配輸入的文本提示和輸出的生成圖像。在推理階段使用 Image Encoder 的逆過程從經過文本指導的噪聲預測器那裡解碼恢復,生成最終圖像。
-
噪聲預測模型
這是本文的主角:擴散模型。噪聲預測,顧名思義,不是用來預測圖像的,而是預測噪聲,這是 stable diffusion 的核心組件,還是 Dall-E 2 和 Imagen 的主要部分,幾乎現在的大型圖像生成模型都用到了擴散結構。
二、Diffusion Model#
1、工作原理#
擴散的意思是迭代預測前一步中可能添加的噪聲,將預測的噪聲從輸入中減去,再進行下一步預測,這樣一步步的擴散,最終得到去掉所有可能噪聲後的圖像。
via 噪聲預測過程 |
以上是從推理過程角度看擴散模型是怎麼 “擴散” 的,在訓練過程中是相反的過程:每一步中都會在前一步基礎上添加一份噪聲,這樣既得到了 Label 也得到了 Output,同時完成訓練和損失計算。
via 訓練過程 |
2、模型構造#
整體框架是基於 UNet,內部使用 ResNet 和 Transformer,Attention 主要用於文本特徵嵌入,基於文本的擴散結構在下一節中介紹了,這裡只分析最根本的圖像擴散結構。
via 潛空間特徵與顯式視覺空間對應關係 |
擴散模型是在潛空間上對高維特徵的處理,不直接處理顯式圖像,這樣可以保證推理效率。
擴散模型基於多個擴散結構的迭代,每步的結構相同,對應圖像降噪生成的不同階段,可以將這些不同階段得到的潛空間特徵解碼出顯式圖像,能觀察到一幅圖像是如何神奇的一步步被生成出來的。
via 可視化不同降噪階段 |
三、Diffusioon Model with Text#
擴散的原理已經介紹了,就是迭代預測前一步中可能添加的噪聲,並減去預測噪聲,最終恢復圖像的過程。在沒有文本提示的情況下,輸入只有隨機噪聲圖像,這樣生成的圖像其實是沒有意義的,一定要有指導性的特徵信息才能生成特定的圖像,所以需要將文本提示信息嵌入到擴散結構中。
文本提示信息經過文本特徵提取模型已經轉換成文本特徵向量了,只需要在擴散模型的每一步之後加入注意力模塊將文本特徵嵌入潛空間特徵中。
via 帶文本提示的擴散過程 |
四、Diffusion VS GAN#
圖像生成是當前 AIGC 領域最熱門的方向之一。擴散模型開創了圖像生成的新時代,實現了前所未有的圖像質量和模型靈活性水平,被應用在 DALLE 2、Imagen 和 Stable Diffusion 中。
擴散模型基於迭代運算,可以在迭代中對簡單目標進行優化,實現最終目標,但是對算力要求很高 (想一想,DALLE 2、Imagen 和 Stable Diffusion 這些模型,哪個不是巨無霸體型😂)。
這些模型先不說能不能復現,一般的中小公司連設備都不夠!最終只能使用 API 的方式依賴頭部公司,頭部公司進一步壟斷市場。
在擴散模型之前,生成對抗網絡(GAN)是圖像生成模型中常用的基礎架構。相比於擴散模型,GAN 沒有迭代運算,推理效率更高,但由於訓練過程的不穩定性,想擴展 GAN 是非常困難的,需要仔細調整網絡架構和訓練因素。不過 GAN 的圖像生成效果也是有目共睹的,StyleGAN、Pixel2Pixel 和 PLUSE 等模型的效果非常驚艷,而且模型規模相比擴散模型非常 mini,普通設備就能實現。
總之,基於 GAN 框架的模型和基於 Diffusion 的模型各有優劣,並不能說現在擴散模型就把 GAN 模型打敗了,PS,最近就有一篇關於擴展 GAN 圖像生成的研究。
最後#
參考文章:
The Illustrated Stable Diffusion
Scaling up GANs for Text-to-Image Synthesis
聲明#
本文僅作為個人學習記錄。
本文與HUGHIE Blog保持同步。