使用 WebUI 玩 SDXL1.0
SDXL 是什麼?
SDXL 是 Stable Diffusion XL 的簡稱,顧名思義它的模型更肥一些,但相對的繪圖的能力也更好。
SDXL 一直都是測試階段,直到最近釋出1.0版本,且能整合到 WebUI 做使用,故一炮而紅。
跟原本的 SD 最大不同,是使用了 Base 跟 Refiner 兩個模型做聯集擴散,參數量更破了 100 億,對理論技術有興趣可以參考 https://arxiv.org/abs/2307.01952。
我相信多數人是喜歡開車而不是造車,所以我們直接進入使用環節,開始前不免俗要說明一下 SDXL 的優缺點:
優點
- 更高像素的圖片,且放大時不會嚴重失真
- Prompt 理解能力更好,在 AI 腦補上更為智能,簡單來說就是可以不用寫一長串 Prompt
- 改善斷肢斷手多指等 SD1.5、SD2.0 難以根除的痛點
- 風格更為多樣化,根據官方描述,有龐克、動漫、摺紙等一堆風格可以嘗試
缺點
- 過去 SD 的 Lora 跟一些 Controlnet 都不適用
- GPU 的要求更高,體感上 VRAM 要 12GB 以上 (雖然可以調參數使用較低的 VRAM 啦)
- 算圖時間更久,合理吧
如果到這邊你覺得自己電腦可能跑不動,但又想嘗試的,可以用官網的 Online Demo 來玩玩看,但會跑非~長~久~
如果你已經準備好手上的3090、4080、4090…,打算加入燒卡行列,我們就繼續看下去吧。以下教學以 Windows 環境為例。
SDXL 及 WebUI 安裝教學
WebUI 原則上跟過去 SD 的安裝方式一樣,詳細可以參考:
為了跟原本 SD 拆開,我會重新建立一個 conda 環境裝新的 WebUI 做區隔,避免有相互汙染的狀況,如果你想混用可以略過這個步驟。
1. 安裝 Anaconda 及 WebUI
Anaconda 的安裝就不多做贅述,記得裝 Python 3.10 的版本,切記切記!
conda create --name sdxl python=3.10
下載 WebUI 進行安裝,https://github.com/AUTOMATIC1111/stable-diffusion-webui
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
進去 stable-diffusion-webui 資料夾下的 webui-user.bat,使用記事本或 notepad++ 做修改,將 PYTHON= 部分改成剛剛 conda env 的路徑:
@echo off
set PYTHON="C:\Users\LEE_S\anaconda3\envs\sdxl\python.exe"
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=
git pull
call webui.bat
COMMANDLINE_ARGS 看個人需求,有的會加 xformers 做 N 牌顯卡加速,有的會加 medvram 來解決 VRAM 過低問題,我自己是什麼都沒加,3090直接過去。語法範例:
set COMMANDLINE_ARGS=--xformers --medvram
好了以後儲存,然後點兩下 webui-user.bat 打開讓它跑,應該要跑好一陣子。
2. 下載 SDXL 的相關文件
在 WebUI 安裝同時,我們可以先下載 SDXL 的相關文件,因為文件有點大,所以可以跟前步驟同時跑。
Base模型
Refiner 模型
VAE 模型
下載好後把 Base 跟 Refiner 丟到 \stable-diffusion-webui\models\Stable-diffusion 下面,VAE 丟到 \stable-diffusion-webui\models\VAE 下面。
丟好後等 WebUI 第一次跑完,連終端機整個關掉再重開一次即可,可以看到 checkpoint 有剛剛載好的模型。
WebUI 的 Settings 找到 User interface,在 Quicksettings list 加入 sd_vae。如果找不到可以點旁邊的 Show all pages,然後用關鍵字搜尋 Quicksettings 應該就能找到了,這個動作是確保我們使用正確的 VAE。
點上面的 Apply settings 後重啟,如果看到下面畫面,恭喜你完成 87%了。第一次載入 Base 模型會比較慢,畢竟人家有 6G 多,跑完第一次之後就會正常速度了。
3. 文字算圖
接下來測試不使用任何 Negative prompt、Lora,看看算圖的效果:
a beatuiful female play guitar
為了跟之前 SD 做比較,我們的參數一樣,但尺寸配合 SDXL 需要變成 1024 x 1024。彈吉他好處是可以看手部的運算,發現原生模型的產圖效果比想像好很多。
4. Refiner 微調
Refiner 模型是專門拿來 img2img 微調用的,主要可以做細部的修正,我們拿第一張圖做範例。一樣第一次載入模型會比較久一點,注意最上面的模型選為 Refiner,VAE 維持不變。
下面參數基本上跟原圖不變,Denoising strength 預設是 0.75,通常我會調 0.2~0.35 之間,調太高容易跑掉。
大家看出細節了嗎哈哈,礙於網路圖片壓縮,瀏覽器很難肉眼看出來,但在地端是可以看到非常明顯的差異唷!
5. 加入 Lora 或風格
上面只是 SDXL 的原生模型示範,C站 的 SDXL 模型越來越多,善用多個模型組合,就能開啟美少女夢工廠之路。
WebUI 的 Extensions 有個 StyleSelectorXL 建議可以裝一下,它可以套用到多種風格中,讓圖片更符合你的需求。
總結
SDXL 目前還很新,未來的發展潛力是巨大的,但若想好好玩 AI art,建議還是收一張 VRAM 24G 的 GPU 比較有效率,只能求老黃家的顯卡價格別再漲啦。
給大家看一下搭配 Lora 後的 SDXL 威力,人造人的味道改善很多呢: