進化的Automatic1111:Vlad Diffusion - Stable Diffusion

2023/04/25閱讀時間約 11 分鐘

2023/6/23 - 最近筆者的Vlad常常算圖卡住,所以轉回去用A1111,但為了算大圖又換回Vlad。移除幾個不常用的extensions並更新到6/23最新版本後,似乎有變穩定。

前提

  Stable Diffusion(下略SD)是方興未艾的開源AI繪圖程式,原本只憑輸入 Python 指令即可完成繪圖,但這種方式不方便使用,所以很多大神會撰寫各自的UI和插件以供快速重複使用。然而因為都是在當志工,某個版本/插件的大神作者突然就停止更新的情況也屢見不鮮,這是會讓人覺得煩躁、但也讓人覺得有趣的現象。無論如何,基本原理是相通的,所以即便現在使用的介面突然哪天停止更新了,也不至於讓所學付諸東流。
Vlad Automatic

正題

  那麼就來切入正題。
  Vlad Diffusion(下略Vlad)和 Automatic1111(下略A1111)相較:

優點

  1. 介面優化
  2. 效能優化
    -針對 Torch 2.0 優化
    -使用 SDP(Scaled Dot Product)優化運算,無須 xFormers 也可顯著提升效能、降低 VRAM 使用量(*想繼續使用 xFormers 也是可以的,安裝後可調設定)
  3. 內建 LoRA、LyCORIS、 Custom Diffusion, Dreambooth 訓練功能
  4. 內建以下插件:
    System Info (系統資訊)
    ControlNet
    Image Browser (圖片瀏覽器)
    LORA
    LyCORIS
    Model Converter
    CLiP Interrogator
    Dynamic Thresholding
    Steps Animation
    Seed Travel
    Multi-Diffusion Upscaler
詳情請參閱作者提供的Vlad Github頁面:
https://github.com/vladmandic/automatic
  基本上多數使用者會用到的插件都已預先安裝好了。

缺點

  1. 有A1111沒有的一些小缺點,例如:
    -顯示剩餘運算時間的小框有可能會看不到;
    -更改設定後即使有按套用設定、重新啟動UI(Apply Settings、Restart UI),時不時仍會發生錯誤,必須關掉命令提示視窗重新執行;
    -發生錯誤時不一定會有提示,但Vlad會「發呆」;
    -運算生圖期間如果發生錯誤,有可能產生持續性bug,需要關掉命令提示視窗重新執行,介面也可能需要重新整理刷新。
  2. 介面比A1111要略加複雜。
  3. 人氣值可能會被 ComfyUI 超車。
    *註:有 Unreal、Unity3D 等遊戲引擎或 Blender、Maya 等3D繪圖軟體經驗的人,ComfyUI 將會是首選介面,但 A1111 和 Vlad 更適合沒有上述經驗或剛入門 SD 的使用者。

安裝

英文不錯的人可直接看這部影片完成所有步驟:
這位作者有很多 SD 的教學而且更新很勤,個人力推!

主要有三個步驟:安裝 Python、安裝 Github、安裝 Vlad

Python 請安裝 3.10.6 版本。直接下載
*如果上列連結失效或需要更改安裝的版本,請點這裡前往尋找
**安裝 Python 時請務必打勾下圖紅框中的選項!
請務必打勾喔!
Github 安裝最新版本即可。2.40.0直接下載
*請點這裡尋找和安裝不同版本

Vlad 的安裝步驟比 A1111 略為繁瑣:

1. 先到想安裝 Vlad 的目錄下,例如 G:\StableDiffusion\
2. 在該目錄下的路徑欄位輸入 cmd 後按下 Enter
輸入 cmd 後按下 Enter
3. 開啟的命令提示字元視窗會直接到該目錄下,這時請輸入:
git clone https://github.com/vladmandic/automatic
然後按下 Enter,就會將 Vlad 複製到該目錄下。
按下 Enter 前請先確認是預備安裝的路徑
4. 複製完成後關掉命令提示字元視窗,準備開始下載和更新很多內容。上面的教學影片是指示到複製好的「automatic」資料夾內雙點 launch.py 執行更新,但我認為雙點同資料夾下的 webui.bat 就可以了,因為 webui.bat 就包含執行 launch.py 的步驟,且也是以後執行 Vlad 時雙點的批次檔。
- 初次下載更新會很花時間。因為沒有進度條所以有時候會在某些項目卡很久,請耐心等候。
- 跑更新時有可能會遇到錯誤(紅字 Error),但不是所有的 Error 都會造成問題。只要最後有出現網址和能順利開啟介面,通常就代表安裝成功了。
*我自己是跑了 launch.py 至少三次(期間有遇到紅字 Error),之後再執行 webui.bat 就有順利執行。
只要跑到最後有出現這條,通常就可以在瀏覽器輸入網址開啟程式了。
- 更新期間可能會遇到下列提問:
Download the default model? = 下載預設模組?
  最簡單乾脆的方法就是輸入「y」後按下 Enter,不然就要用文字編輯程式打開 webui.bat,於第一行的下方輸入既存 checkpoint 的所在路徑,例如:
set COMMANDLINE_ARGS= --ckpt G:\StableDiff\webui\models\Stable-diffusion
webui.bat 中的該命令位子
*我自己因為很早就把 A1111 中的 1.5SD 的 .ckpt 檔案給砍了,所以還是得重新下載。不下載不給跑 Vlad,這點和 A1111 不太一樣。
  如果真的無法安裝成功且英文不錯的話,可前往教學影片作者開設的Discord群中在 #help 中提問,或到 #faq 搜尋有沒有解答。
  該群也會討論其他UI(例如ComfyUI)或插件(extensions),也可以交流自己的作品喔。

實際使用

初次設定

  初次使用需要設定/轉移想使用的模組、插件等,已經有使用 A1111 或其他介面的話應該已經有相關檔案了。雖然最簡單暴力的方式就是全部都複製到 Vlad\automatic 目錄下的對應資料夾,但這些檔案有些非常龐大,而且 Vlad 有提供系統路徑(System Paths)的修改功能,何不充分利用?
*註:首次使用 SD 就使用 Vlad 介面的人,請依照原本設定的路徑擺放對應的模組/插件即可,可跳過以下 System Paths、ControlNet 更改路徑的部分。
  我因為把 Vlad 和 A1111 都安裝在同一個主資料夾內,所以我的路徑修改如下:
劃紅線的選項請記得取消勾選,不然可能每次開啟Vlad都要重新設定路徑。
  「../」是「往上一個母目錄」(parent directory)的意思。「../../」就是往上兩個母目錄的意思。因為我的Vlad 「automatic」路徑如下:
G:\StableDiff\_Vlad1111\automatic
而我的 A1111 目錄路徑如下:
G:\StableDiff\webui
所以我使用「../../」回到「G:\StableDiff\」,系統就能找到 A1111 的「webui」和其下的子資料夾了。
  當然也可以直接貼上完整的絕對路徑,只是如果資料夾搬到其他位子時必須一併更新。
  ControlNet 也得修改路徑,但因為 ControlNet 是在 automatic 的子資料夾的子資料夾中,所以需要「../../../../」(../連四次):
「Extra path to scan」(也就是從上方算起第三個 ../../../../的路徑我不是很確定
  紫框兩個打勾的部分是聽說這樣算出來的結果會比較理想就打勾的,但我沒有實際驗證過。
  最後我還調整了下面兩個部分:
我是因為看到「能顯著提升效能」才打勾框起來的選項,該選項會影響算圖結果,但理論上差距不大
多加了 sd_vae 快捷選項
  這裡是添加快捷選項的功能。因為VAE是常常需要用到的功能,所以我添加了。添加後主介面會增加下面這個欄位:
方便更換VAE
  初次設定調整好後,請記得按過「Settings」頁面的這兩個按鈕:
沒按沒保佑---是沒保存。
  保險起見,建議關掉Vlad的命令提示視窗重開。

常用選項

最後來介紹幾個常用功能/選項:
From Text、From Image = A1111的 Text2Image、Image2Image
就是換個叫法而已。
Clip Skip
  該選項在 A1111 也有,不過深埋在設定選項內。簡要言之,目前公認的用法是:寫實畫風設定成1,ACG設定成2。可以實際玩玩數值(1~4)比較差異。
From Image (Image2Image) 的截圖我就不貼了
Tile Diffusion、Tile VAE
  這兩者都是提升效能(算大圖)相關的插件,內建於Vlad中。理論上兩者的效能比 SD Upscale 和 Ultimate SD Upscale 要更好。
From Text (Text2Image) 的介面
From Image (Image2Image) 的介面
  Tiled Diffusion 在 From Image 介面中的選項多了很多。
  「Tiled」的意思就是「一塊一塊」的意思,換句話說就是把圖片切成好幾塊運算,以達到減少VRAM使用量的方法。紅框的部分我沒使用過,以下僅簡要說明紫框的部分:
Tile Diffusion:
  1. Enabled - 勾選以使用
  2. Method - 據說 MultiDiffusion 效果很好(也是預設選項)
  3. Move ControlNet Images to CPU (if appllicable) - 有使用 ControlNet 時把 ControlNet 的圖片移至 CPU 端,也就是空出更多的 VRAM
  4. Keep input image size - 保留輸入圖片的解析度(From Image)
  5. Upscaler - 放大圖片時選擇的放大演算法
  6. Scale Factor - 放大倍率
Tiled VAE:
  1. Enabled - 勾選以使用
  2. Encoder Tile Size - 切割的Tile區塊大小
    *如果發生 CUDA 記憶體不足錯誤時,請將區塊大小調小
    *當運算圖片的最長邊<=此值,實際上不會觸發 Tiled VAE 功能。
  3. Fast Encoder/Fast Decoder - 快速編碼器、快速解碼器,可加快算圖速度
  4. Encoder Color Fix - Fast Encoder 有可能造成預期外的色差,可勾選此項修正,但會增加記憶體用量和運算時間。
最後使用 Vlad 運算的小說封面圖結尾(有額外在 Clip Studio Paint 後製):
自產自銷
為什麼會看到廣告
78會員
104內容數
筆者探索AI工具時遇到的難題、解方和雜談,不定期更新。
留言0
查看全部
發表第一個留言支持創作者!