更新於 2023/07/18閱讀時間約 11 分鐘

VLAD SD-XL 0.9搶先玩 | Stable Diffusion

最近 Stability AI 的 SD-XL(Stable Diffusion XL) 即將完工。原先只有 ComfyUI 能支援,但最近注意到 Vlad 也有支援了,遂嘗試了一下。

若不知道 Vlad 是什麼,請參閱本專題的 Vlad 子分頁中的文章。包括進化的Automatic1111:Vlad Diffusion - Stable Diffusion。 

現階段無論是 SD-XL 還是 Vlad 的 SD-XL 支援,都屬於實驗中的階段,所以這篇心得就不談基礎的東西了。


P.S.只想看圖的話請直接至使用感想


安裝流程 | HUGGINGFACE跑不掉

請先更新Vlad到最新版

在 automatic (或是其他的安裝資料夾)目錄中打開 cmd,輸入:
git pull https://github.com/vladmandic/automatic

可參閱Vlad webui更新流程 - Stable Diffusion

Vlad 的更新非常頻繁,所以有可能更新後看到和這篇心得略有不同的UI介面。


申請HuggingFace權限

Vlad 無法和 ComfyUI 一樣直接下載 SD-XL 的 .safetensor 模型使用,必須要透過 Vlad 的 Model 頁籤下載。因為 SD-XL 模型是非公開的,無論是使用 ComfyUI 還是 Vlad 都必須註冊 HuggingFace 和申請權限才能取得 SD-XL。

HuggingFace 的註冊流程筆者就不提了,申請開通 SD-XL 使用權限可透過以下網址進行:
https://huggingface.co/stabilityai/stable-diffusion-xl-base-0.9/tree/main

首次嘗試下載 sd_xl_base_0.9.safetensors 檔案時會跳出使用者規範頁面,最下方填寫一些基本資料後提出申請,馬上就會開通權限。


產生Access token

接著要在 HuggingFace 產生自己的 Access Token,在 Vlad 下載 SD-XL 會用到,位置如下面截圖:

在HuggingFace網站前往Settings


前往Access Tokens

點擊 New Token 按鈕即可產生,種類請選 Read。命名隨意,只是讓自己記得該 Token 用在什麼地方:

產生後記得複製,點按Show右邊的兩方塊重疊的按鈕即可


安裝、下載SD-XL 0.9

進入 Vlad 介面,前往以下地方:

一共需要下載兩個模型,直接在 Select model 中輸入:
stabilityai/stable-diffusion-xl-base-0.9
以及
stabilityai/stable-diffusion-xl-refiner-0.9

然後在 Huggingface token 欄位貼上自己的 Access Token,接著點擊Download model。檔案很大,需耐心等cmd中的進度條跑完。

*Access Token 有可能失效,如果發現下載失敗可產生新 token 再次嘗試。

兩種模型都下載好了後,建議關掉 Vlad 的 cmd 視窗後重開 Vlad。

模型會在models > Diffuers 中以資料夾呈現

使用前提/設定/注意事項

SD-XL 是基於 Diffuser 模型的演算法,與目前常用的 1.5 不同。能使用的 Sampling Methods 也不同(Vlad 會自行調整)。最重要、影響最大的不同處如下:

  1. 以 1024x1024 圖片訓練而成,所以 Text2Image 時不能用 1.5 習慣的小圖解析度,成果會很爛
  2. SD-XL 的生圖是 2 階段過程,所以才需要下載 base 和 refiner 兩個模型
  3. 更吃 VRAM,但 -lowvram -medvram 保留的效能相對較佳
  4. 無​法使用 1.5 的超級插件 ControlNet
  5. 無法使用 1.5 的 VAE
  6. 可以使用 Textual Inversion、LoRA,但無法使用 1.5 的,必須另外訓練
  7. 無法使用 LyCORIS

因為上述 4~6 的緣故,以及現階段還沒有其他的衍生模型出現,所以 SD-XL 目前的客製化能力比不上 1.5。


切換模式的方法

實際使用方面,最重要的是:

  • 使用 SD-XL 需要切換 Vlad 的模式。

雖然 Vlad 的 Settings >Stable Diffusion  頁籤最底部有選項:

original = 1.5/2.0/2.1 模式 | diffusers = SD-XL 模式

但更乾脆直接的方式是自己製作類似 A1111 的 webui-user.bat,直接啟動時切換。請自己創新的 .txt 檔案後更改副檔名為 .bat,輸入以下內容儲存後放到和 webui.bat 相同的資料夾中,然後啟動 Vlad 時使用自己建立的 .bat 切換模式。

1.5/2.0/2.1 模式:

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS= --backend original

call webui.bat

SD-XL 模式:

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS= --backend diffusers

call webui.bat

請注意:切換模式是常駐狀態,也就是切換為 SD-XL 模式後就會維持 SD-XL 模式,直到你切換回 1.5/2.0/2.1 模式。

請注意2:切換模式時Vlad會自動把不支援的插件(extentsions)關掉,但切換回原本模式時不會自動幫忙打開。例如切換為 SD-XL 模式時 ControlNet 會被自動關閉(disabled),但切換回 1.5/2.0/2.1 模式時不會自動打開。


相關設定/注意事項

先說注意事項:

Vlad 的 SD-XL 模式似乎有 memory leak 的問題,也就是算圖後 VRAM 的釋放不完全,所以多算幾張後cmd就會出現高 VRAM 使用量的警語,接著會跑出 VRAM 不足時的半成品或全黑圖片,這時只能關掉 Vlad 重開。

相關設定 | 直接貼截圖供參考:

節省VRAM使用的設定

dpm相關sampling演算法可以嘗試更改紅框中的選項比較不同

關於 Samplers DPM solver algorithm 其實不是直接和 SD-XL 相關,但筆者首次切換 SD-XL 模式時必須在這個選項套用選擇後,使用 DEIS 等相關演算法才沒有出錯。

總之,SD-XL 模式很多都處於實驗階段,包括無法算到一半 skip/stop,所以要有常常遇到錯誤的心理準備。

使用感想 | SD-XL就像是面對習慣完全不同的藝術家

很多 1.5 的習慣,到了 SD-XL 就不太適用。最主要的有三:

  1. 需要設定 refiner 模型
  2. negative prompts 寫太多反而會有負面效果,而且 1.5 的 Textual Inversion (deep negative 之類)是無效的。
  3. SD-XL 0.9 比較適應自然語言,而且風格包羅萬象,所以風格方面的提示詞不夠明確的話,很難獲得想要的風格。


refiner模型的設定位置如下圖:

可以嘗試 none(也就是不使用)的效果,但通常很悲慘:

none

有refiner

Negative Prompts比較:

Negative prompt: text, watermark, blurry, painting, 3d render, smooth, plastic, grainy, low-resolution, deep-fried, oversaturated,

Negative prompt: bad-hands-5, ng_deepnegative_v1_75t, extra fingers, deformed hands, polydactyl, ((low quality, worst quality, monochrome, greyscale, grayscale, watermark, text, blurry, jpeg artifacts)), cropped, normal quality, ((signature, username, artist name, logo)), cartoon, canvas frame, ((lowres)), disfigured, bad art, deformed, extra limbs, b&w, weird colors, duplicate, morbid, mutilated, mutated hands, poorly drawn hands, poorly drawn face, mutation, ugly, bad proportions, cloned face, out of frame, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, long neck, skin spots, acnes, skin blemishes, age spot,

風格提示詞比較:

無風格提示詞

Japanese anime style | 日式動畫風 - 老實說,不像

manga style, full color |漫畫風 - 好美式

Japanese shounen manga style, full color | 日式少年漫畫風 - 還是好美式

Japanese shoujo anime, full color | 日式少女漫畫風 - 懶得吐槽了

畢竟是美國人做的模型,所以可以看出很強烈的美式偏好,包括第一張偏寫實的圖中,亞洲人的臉都是以美式為基準的。

看來只能等未來正式推出後的衍生模型了。


SD-XL懂得點到為止

SD-XL 有一點是優於 1.5 模型的。

1.5 即使是寫實風的模型,生成的圖往往還是有一種莫名的虛假感,很重要的一個原因是 1.5 的模型沒有「取捨觀念」,要細節就一起細節,要清楚就一起清楚,但實際照片和人物往往不是這樣。

SD-XL 在這方面能做出更好的取捨,例如一張近距離頭像照:

又是她

除了背景和真實照片一樣會模糊外,整個人物也只有焦點的臉部很清楚、細節很明確,其他部分則逐步遞減細節並增加模糊程度。而且即使沒有特別在提示詞中註明打光方法,SD-XL 還是生成很符合戶外的光影感覺。

雖然在 SD-XL 正式推出且開始有客製化模型前,筆者還是會繼續使用 1.5,但個人很期待未來能用 SD-XL 朝擬真更加邁進一步。


祝大家算圖愉快!


後續更新/補充 (最後:2023/07/16)

  1. Vlad 大改版時一如往常bug很多,我使用了 SD-XL 模式後切回原本模式生圖一直出問題,這種時候通常需要等Vlad作者更新版本。
  2. 最近一次更新後,感覺 512x512 大小的 Text2Image 效果也變好了
  3. Img2Img (即使是1.5 模式)最近慢得和垃圾差不多,根本沒有實用性。

封面圖完整版


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.