iT邦幫忙

2023 iThome 鐵人賽

DAY 28
0
AI & Data

圖像生成 AI 的原理與應用系列 第 28

[Day 28] Stable Diffusion 的兩三事:速覽 Stable Diffusion paper

  • 分享至 

  • xImage
  •  

前一天的文章介紹了目前最前端的幾個文字生成影像模型,但大家是否有個疑惑:明明 diffusion model 就可以依據文字產生品質不錯的影像了,為什麼這些新的方法要組合三個模型,而且讓 diffusion model 產生影像的 latent representation 而非影像呢?

今天的文章要帶大家快速瀏覽 Stable Diffusion 的 paper High-Resolution Image Synthesis with Latent Diffusion Models,簡單介紹 Stable Diffusion 的原理、訓練方法與優點~/images/emoticon/emoticon31.gif

https://ithelp.ithome.com.tw/upload/images/20231007/20162522osR0V2lMLW.jpg
(圖片來源:High-Resolution Image Synthesis with Latent Diffusion Models

先回顧一下昨天的內容,Stable Diffusion 模型可以拆解為三個部分:

  1. 條件的編碼器(encoder):將控制影像生成的條件壓縮轉化為 latent representation
  2. Latent space 的 diffusion model(可直接稱為 latent diffusion model):用來生成影像的 latent representation,原理和 diffusion model 一樣,會將原本從 Gaussian distribution 抽樣的隨機向量一步一步降噪,得到帶有影像資訊的降維向量(即 latent representation)
  3. 影像解碼器(decoder):將前一步 diffusion model 產生的影像 latent representation 解碼重建成影像

那麼,使用 latent diffusion model 的好處是什麼呢?一個最大的優點就是節省計算資源/images/emoticon/emoticon18.gif

讓 diffusion model 直接產生一張影像,包含它的每個 pixel 的 RGB 數值,是非常耗費計算資源的。根據 paper 提供的資訊,要訓練一個功能強大的 diffusion model 約需要 150 到 1000 個 V100 days,意思就是要使用一張 V100 GPU 訓練 150 到 1000 天。而在訓練好之後,讓模型運作在一張 A100 GPU 上,約需要五天才能產生 5 萬張影像,5 萬張影像聽起來很多,但要成為大眾能廣泛使用的影像生成服務是遠遠不足的,這樣的高計算資源消耗也會局限模型能應用的情況。

而 latent diffusion model 可以明確的改善這個問題,因為產生的是影像壓縮的向量。壓縮的比例如果調整得當,能在盡可能避免影像品質損失的情況下,更有效率的生成影像~/images/emoticon/emoticon07.gif

至於如何訓練 Stable Diffusion 呢?訓練會分為兩個階段:

首先,利用大量無標註影像訓練一個 auto-encoder,這個 auto-encoder 會學到影像資料和 latent representation 的轉換關係,如此一來 diffusion model 才能學習生成有影像意義的 latent representation。而 decoder 的部分之後就可以用來將 diffusion model 產生的影像 latent representation 解碼重建成影像~

這個 auto-encoder 的 latent space 可以用一些 regularization 的方法做限制,如果引入 KL divergence 作為 regularization,就是我們之前介紹的 VAE(variational auto-encoder),此外 paper 中也有使用 vector quantization 的方法進行 regularization。

而訓練的第二階段,就是用影像的 latent representation,先經過加 noise 的 forward process,再用來訓練 latent diffusion model 的 denoise 模組了。和之前介紹 diffusion model 相似的是,step 和控制條件也會輸入到每一步的 denoise 模組,而 Stable Diffusion 為了更好的處理控制條件,使用 cross-attention layer 進一步處理條件的 representation。

這樣的流程也使得進行 diffusion model 的實驗更加容易。由於 latent diffusion model 的計算成本也比 pixel space 的 diffusion model 低不少,我們只需要訓練一次 auto-encoder,就可以嘗試用不同的 latent diffusion model 進行更多的實驗~


上一篇
[Day 27] 簡介 Stable Diffusion、DALL·E 和 Imagen 的模型架構
下一篇
[Day 29] 淺談 DALL·E 2 的原理
系列文
圖像生成 AI 的原理與應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言