SD中的VAE,你不能不懂

flydean發表於2024-07-03

什麼是VAE?

VAE,即變分自編碼器(Variational Autoencoder),是一種生成模型,它透過學習輸入資料的潛在表示來重構輸入資料。

在Stable Diffusion 1.4 或 1.5 模型中,透過VAE對模型進行部分更新,以提升模型渲染眼睛的能力。透過這種更新,模型在生成影像時能夠更準確地捕捉和再現眼睛的細節,從而提高整體影像的真實感和質量。

VAE 由兩部分組成:編碼器和解碼器。編碼器將輸入資料對映到一個潛在空間,解碼器則從這個潛在空間重構資料。

我需要VAE嗎?

實際上,你無需安裝 VAE 檔案即可執行 Stable Diffusion,你使用的任何模型(無論是 v1、v2 還是自定義)都已具有預設 VAE。

當人們說下載和使用 VAE 時,他們指的是使用它的改進版本

當模型訓練器使用其他資料進一步微調模型的 VAE 部分時,就會發生這種情況。在這種情況下,並不需要釋出整個的大模型,只需要釋出其中的VAE部分即可。

使用VAE有什麼效果?

VAE(變分自編碼器)的改進通常意味著它能夠更精確地從潛在空間解碼影像,尤其是在處理精細細節方面,比如眼睛和文字的渲染。

在 Stable Diffusion 模型的上下文中,改進的 VAE 解碼器可以更有效地捕捉和再現影像中的微妙特徵,這對於生成高質量的影像至關重要。

Stability AI 釋出了兩種微調的 VAE 解碼器變體,分別是:

  1. EMA(指數移動平均線):這是一種統計方法,通常用於平滑時間序列資料。在機器學習中,EMA 有時用於模型引數的更新,以實現更穩定的訓練過程。
  2. MSE(均方誤差):這是一種常用的誤差度量方式,用於衡量模型預測值與實際值之間的差異。在自動編碼器的上下文中,MSE 可以作為最佳化目標,幫助模型學習更準確地重構輸入資料。

這兩種變體可能對應於不同的訓練策略或目標函式,旨在最佳化 VAE 解碼器的效能,特別是在渲染細節方面。選擇哪一種變體可能取決於特定的應用場景和所需的輸出質量。

使用這些微調的 VAE 解碼器變體,可以期望在生成的影像中看到以下改進:

  • 更清晰的文字:文字的邊緣和字母形狀可以更加銳利和準確。
  • 更真實的眼睛渲染:眼睛的細節,如虹膜、瞳孔和反射,可以更加精細和逼真。

下面是一些對比的例子:

image-20240423112006132

那麼應該使用哪個呢?

Stability AI 對於 256×256 解析度影像的評估指出,使用 EMA(指數移動平均線)的 VAE 解碼器生成的影像在細節上更加清晰,而使用 MSE(均方誤差)的解碼器生成的影像則在視覺上更為平滑。

在Stable Diffusion v1.4 和 v1.5 在 512×512 解析度影像的測試中,可以觀察到在某些情況下,尤其是在人臉在影像中佔比較小的時候,眼睛的渲染質量有所提升。但是到文字渲染方面並沒有太多改善。

所以總結一下,新的 VAE 更新至少不會降低模型的效能,它要麼提升了渲染質量,要麼保持原有水平。

EMA(指數移動平均線)和 MSE(均方誤差)這兩種微調的 VAE 解碼器變體與 Stable Diffusion v2.0 模型是相容的。儘管在 v2.0 版本中,它們可能帶來的改進效果相對較小,因為 v2.0 本身在渲染眼睛方面已經表現得相當出色。

我應該使用 VAE 嗎?

使用 VAE(變分自編碼器)的決定確實取決於你對當前結果的滿意度以及你對細節改進的追求程度。

  1. 如果對結果已經滿意:如果你使用的應用或技術,如 CodeFormer 面部修復,已經能夠達到你期望的影像質量,特別是在眼睛等細節部位,那麼你可能不需要額外引入 VAE 來進一步提升效果。
  2. 追求所有可能的改進:如果你追求每一個可能的效能提升,哪怕是微小的改進,那麼使用 VAE 可能是一個值得考慮的選項。

如何使用VAE?

下載

目前,Stability 釋出了兩個改進的 VAE 版本。以下是直接下載連結。

https://huggingface.co/stabilityai/sd-vae-ft-ema-original/resolve/main/vae-ft-ema-560000-ema-pruned.ckpt

https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt

安裝

如果你用的是webUI。那麼將下載的 VAE 檔案放在目錄中:'stablediffusion-webui/models/VAE'即可。

Linux 和 Mac OS使用者

為方便起見,請在 Linux 或 Mac OS 的 stable-diffusion-webui 目錄下執行以下命令,會自動下載並安裝 VAE 檔案。

wget https://huggingface.co/stabilityai/sd-vae-ft-ema-original/resolve/main/vae-ft-ema-560000-ema-pruned.ckpt -O models/VAE/vae-ft-ema-560000-ema-pruned.ckpt

wget https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt -O models/VAE/vae-ft-mse-840000-ema-pruned.ckpt

在webUI中使用VAE

要在 AUTOMATIC1111 GUI 中使用 VAE,請單擊左側的“設定”選項卡,然後單擊“VAE”部分。

SD VAE 下拉選單中,選擇要使用的 VAE 檔案。

image-20240423112845339

如果你的頁面沒有這個選項,那麼可以到設定->user interface->quick settings list中把sd_vae加上即可:

image-20240423113023470

點我檢視更多精彩內容:www.flydean.com

相關文章