Stable diffusion — High-Resolution Image Synthesis with Latent Diffusion Models

Moris
Computer Vision Note
13 min readMar 14, 2024

--

雖然OpenAI的生成文本模型在自然語言處理領域獨佔鰲頭,但他們的圖像生成對手DALL·E現在面臨了一個可行的開源競爭者Stable Diffusion。本文深入探討了Latent Diffusion論文,Stable Diffusion就是基於這篇論文。

來自High-Resolution Image Synthesis with Latent Diffusion Models的圖13部分,使用“An oil painting of a latent space”作為提示生成。

Outline

  1. Introduction
  2. Limitations of Previous Approaches in Image Generation
  3. High-Level Overview of Latent Diffusion
  4. Perceptual Image Compression
  5. Diffusion Models
  6. Conditioning Mechanisms
  7. Experiments
  8. Conclusion

1. Introduction

在我撰寫此文時,OpenAI的聊天機器人,ChatGPT,透過與微軟產品的整合,持續獲得使用者的青睞,這些產品的使用者超過十億人。雖然Google最近也推出了自家的AI助手Bard,其他公司也在該領域有所突破,但OpenAI依然無人能敵,處於前端位置。人們可能會認為OpenAI的DALL·E,也就是影像生成模型,在條件與非條件影像生成領域也會有類似的優勢。然而,真正引領流行和創新的,實際上是一款開源的替代方案 — — 穩定擴散模型(Stable Diffusion)

本文深入探討穩定擴散模型背後的科學論文,旨在提供對此模型清晰且全面的理解。這種模型正改變著影像生成領域。雖然其他文章提供了對該技術的高層次解釋,但本文則深入探討了常被忽視的細節。

2. Limitations of Previous Approaches in Image Generation

在深入探討科學論文高解析度影像合成與潛在擴散模型中提出的方法之前,我們需要理解該研究要解決的主要問題。

多年來,影像生成主要透過四種模型家族來處理:生成對抗網路(GANs)、變分自編碼器(VAEs)、自迴歸模型(ARMs),以及最近的擴散概率模型(DMs)。

2.1 Generative Adversarial Networks (GANs)

自2014年首次亮相以來,生成對抗網路(GANs)一直是影像生成的主要方法之一。雖然GANs在數據變異性有限的情況下呈現出有希望的結果,但它們帶來了幾個問題。最為人所知的問題是模式崩潰,也就是生成器只產生有限範圍的輸出,而不是多樣化的影像集合。

模式崩潰:這種現象發生在生成器能交替生成一個有限數量的輸出以愚弄判別器時。一般來說,GANs在捕捉完整的數據分佈方面存在困難。

而且,一般來說,它們的訓練經常不穩定

2.2 Variational Autoencoders (VAEs)

變分自編碼器(VAEs)是GANs的一種替代方案,它們有幾個優點。它們不會受到模式崩潰的困擾,並能高效地生成高解析度影像。然而,它們的樣本質量並不總是與GANs相當。

2.3 Autoregressive Models (ARMs)

自迴歸模型(ARMs)在密度估計方面表現出色,並在這方面取得了顯著的成效。然而,它們在高計算需求的架構和序列取樣過程限制了它們生成低解析度影像

2.4 Diffusion Probabilistic Models (DMs)

擴散模型在密度估計和樣本品質方面已取得重大進展,但它們在像素空間內操作,通過向與原始影像大小相同的張量添加或移除噪聲,導致推斷速度慢計算成本高。例如,即使是相對較小的影像,如大小為512x512的RGB影像,也對應著大約800,000個值,這使得在梯度傳播的訓練和用於生成的迭代方法的推斷中,生成更大影像在計算上需求高。

2.5 Conditioning Mechanism

基於文本說明或其他影像的風格生成影像通常是理想的,但將結果條件化在一個或多個輸入上在先前的方法中一直是一個挑戰

3. High-Level Overview of Latent Diffusion

圖 3. 來自 High-Resolution Image Synthesis with Latent Diffusion Models

論文 High-Resolution Image Synthesis with Latent Diffusion Models 提出的方法可以總結為四個主要步驟

  1. 第一步是使用上圖左上角的編碼器E 提取圖像的更緊湊表示。與其他方法不同,latent diffusion在由編碼器定義的latent space中進行而不是在像素空間中
  2. 接下來,添加高斯噪聲到上圖中部的圖像,作為從zzTdiffusion process的一部分(在進行 T 步驟的噪音添加的情況下)。
  3. 然後,將zT表示傳遞到圖形底部中部的U-Net。U-Net的角色是預測ZT-1此過程重複T-1次,直到我們到達z然後通過解碼器D將其從latent space返回到像素空間。
  4. 最後,該方法允許通過映射各種輸入模式(如語義地圖或文本)進行任意條件設定。這是通過首先用專用編碼器τθ轉換輸入y,然後將其映射到U-Net的中間層與與Transformer架構使用的相同交叉注意層來實現。

有了這個總體概覽,我們現在可以更詳細地看看每一個步驟。

4. Perceptual Image Compression

Latent Diffusion明確地將圖像壓縮階段與生成階段分開,以去除高頻細節(感知壓縮),在生成階段,模型學習數據的語義和概念組成(語義壓縮)。

4.1 Objective Function

為了訓練用於圖像壓縮的自編碼器,作者遵循了由VQGAN在Taming Transformers for High-Resolution Image Synthesis中提出的相同的方法。

圖 2. 來自Taming Transformers for High-Resolution Image Synthesis

特別是,訓練autoencoding模型(ED)的目標函數為:

Eq. 25. 來自High-Resolution Image Synthesis with Latent Diffusion Models

Eq. 25. from High-Resolution Image Synthesis with Latent Diffusion Models.

讓我們定義x^為重建的圖像 D(E(x)),Lrec 是重建損失(x 和 x^ 之間的平方誤差),Ladv 是定義為 log(1 — Dψ(x^)) 的對抗性損失,Dψ 是一種基於修補的鑑別器,被優化以區分原始圖像和重建的x^(所以Dψ(x) 嘗試對實際圖像x輸出1,對重建的“假”圖像x^輸出0),以及Lreg 是規範化損失

4.2 Regularization

作者用兩種不同的規範化方法進行實驗。

第一種方法涉及到低權重的Kullback-Leibler項,與標準VAE相似。

Kullback-Leibler (KL) Penality: Kullback-Leibler散度是兩種分佈之間的一種統計距離。在這種情況下,想法是使隱變量z ~ N(Eµ , Eσ²)的分佈接近於標準正態分佈N(0, 1)。施加這種限制通過集中更多的隱變量空間來規範化它,所以,例如,如果z靠近z1和z2,那麼D(z)本身將與D(z1)和D(z2)都有共同之處。

在第二種方法中,隱變量空間用一個vector quantization層進行規範化。

Vector Quantization (VQ): VQ是由在科學論文 Neural Discrete Representation Learning 中提出的VQVAE和已經提到的VQGAN使用的方法。如上圖所示,對於編碼器輸出z^的每一個空間位置,相應的向量(其大小取決於z^的通道數量)被替換為在一個可學習的“碼書”中最接近它的向量。然後在推斷期間限制解碼器的可能輸入,這些輸入只能是碼書向量的組合(隱變量空間的離散化或量化)。

在使用VQ-規範化的latent space中,z在量化層之前被提取出來並在解碼器中吸收量化操作,現在,它可以被解釋為D的第一層。

5. Diffusion Models

圖2. 來自 去噪擴散概率模型

Fig. 2. from Denoising Diffusion Probabilistic Models.

因為本文主要討論隱性擴散而非一般的擴散模型,我將只描述它們最重要的幾個方面。首先,讓我們區分兩個過程:正向過程和反向過程。

5.1 Forward Process

forwarddiffusion process,如圖中從右到左的過程,是一個Markov chain,也就是說,時間t的圖像只依賴於時間t-1的圖像,而不是所有的先前圖像。每一步,xt根據以下轉移概率進行取樣:

Eq. 2. 來自 去噪擴散概率模型

在上述公式中,βt定義了一個變異數排程,可以通過將它們視為超參數來學習或保持常數。正向處理的一個有趣特性也在於,對於任意的時間步t,都可以用封閉型式取樣xt。使用記號

並且

我們有

Eq. 4. 來自 去噪擴散概率模型

所以,概括來說,在正向過程中,我們可以通過從一個高斯分布中取樣,該高斯分布的平均數和變異數由上述公式定義,來得到任何時間t的圖像。

5.2 Reverse Process

給定正向過程,反向過程也遵循一個高斯分布:

至於變異數,作者將其設定為

他們注意到實驗上

產生相同的結果。

在看如何參數化平均數之前,讓我們對正向過程的eq. 4進行重新參數化:

在這一點上,我們將平均值參數化為

其中ϵθ是從xt估計出的ϵ,具體來說,它是一種時間條件的U-Net

此時我們有所有的元素來取樣xt-1,條件是xt,考慮到我們知道在描述反向過程開始時引入的高斯分布的所有參數。

不進入數學細節,要最小化的(簡化)目標為:

Eq. 1. 來自 高解析度圖像合成與隱性擴散模型

t 從 {1, …, T} 中均勻抽樣。

5.3 Generative Modeling of Latent Representations

如前所述,Latent Diffusion像一個diffusion model,與前面解釋的類似。然而,它的不同在於,它從通過編碼器獲得的圖像的隱性表示z開始latent space),而不是從圖像x開始(pixel space)。這一細節大大減少了計算負擔,因為latent space比pixel space更緊湊。

鑑於此,將擴散模型目標中的 xt 替換為 zt,我們得到新的目標:

Eq. 2. 來自 高解析度圖像合成與隱性擴散模型

6. Conditioning Mechanisms

在這項研究之前,對如何條件化擴散模型的探索有限,輸入除了類別標籤或輸入圖像的模糊版本之外的資訊。隱性擴散提出的方法非常靈活,並涉及直接將額外的資訊整合到U-Net模型的中間層,使用交叉注意力,這與Transformer架構類似。

更具體地說,輸入資訊(如文本)首先通過一個領域特定的編碼器(稍後會提供一個例子)τθ轉換為中間表示。然後這種表示通過一個交叉注意力層,並添加到U-Net的中間層:

使用

在方程中,ϕi(zt)代表U-Net的扁平化中間表示,而W是可訓練的投影矩陣。雖然該論文並未詳細說明,但代碼實現揭示了交叉注意力層的輸出被添加到原始的U-Net層。這可以在以下代碼片段中看到:

x = self.attn2(self.norm2(x), context=context) + x

這裡,attn2表示交叉注意力層,而context指的是τθ(y)。雖然這個過程的完整實現較為複雜,但這是關鍵的概念元素。要更深入地理解這種機制,請參見在模型中使用的 BasicTransformerBlock

7. Experiments

來自高解析度圖像合成與潛在擴散模型的圖5。

該論文進行了眾多實驗,探索了各種圖像生成方法,包括無條件生成,佈局到圖像合成,空間條件,超解析度,去痕,等等。為了進一步突出潛在擴散的兩個重要方面,我們將專注於眾所周知的文本到圖像任務。

首要考慮的第一個重要方面是如何將文本轉換成可以傳遞給交叉注意層的表示。作者使用BERT-tokenizer,並實現τθTransformer以實現此目的。

第二個重要方面是應該如何通過編碼器壓縮輸入圖像。作者使用不同的下採樣因子 f ∈ {1, 2, 4, 8, 16, 32}進行實驗,並得出4和8提供了達到高質量合成結果的最佳條件的結論。上述結果是使用LDM-8 (KL)獲得的。

8. Conclusion

潛在擴散以及該論文啟發的後續作品已經產生了令人驚訝的結果,這些結果曾經被認為是不可思議的。如今,這些模型不再僅限於研究實驗室,而正在整合到流行產品中,例如Adobe Photoshop。這一發展標誌著人工智能領域的重要里程碑,並證明了其影響我們生活各個方面的潛力。

然而,儘管在這一領域取得了顯著的進步,但仍然需要解決幾個挑戰。這些挑戰包括版權問題,這涉及到使用圖像訓練AI模型,以及當從互聯網爬取大型數據集時產生的固有偏見。然而,儘管存在這些限制,AI民主化創新的潛力以及使個人能以新穎且引人入勝的方式表達自己的能力太重要了,以至於不能忽視。

--

--

Moris
Computer Vision Note

An AI engineer who loves deep learning technology and is willing to share resources and learn new technologies