推薦閱讀
不知道平時經常使用 SD WebUI 的小伙伴發現沒有,隨著安裝插件和模型越來越多,WebUI 時不時會出現卡頓或爆顯存的情況,尤其在低顯存的硬件上更加明顯,只能不停的重啟來解決。
估計是 WebUI 的作者張呂敏博士自己也發現了這個問題,于是升級版的 SD WebUI Forge 它來了!操作界面雖然和原來的一模一樣,但運行效率和圖像生成速度都有了不錯的提升,下面快跟著我來看看吧~
首先關于為什么取 Forge 這個名字:單詞 Forge 有「鍛造」的意思,根據作者解釋,該詞的靈感是來源于 Minecraft Forge 我的世界,而新開發的 forge 版本項目也是致力于在此前 SD WebUI 的基礎上做進一步的精煉和提效。
1. 更快的生成速度
而 SD WebUI Forge 也確實做到了這一點,首先該版本最大的特點就是開發過程中極大的簡化了代碼邏輯,通過優化資源配置進一步加快推理速度,尤其對顯存越小的玩家來說提升愈加明顯。根據官方描述,相較于原版的 SD WebUI,在使用 SDXL 模型生成 1024 分辨率的圖片時可以直接帶來以下性能提升:
此外,SDXL 模型在配合使用 ControlNet 時,最多支持控制單元直接翻倍,生成速度也有提升 30%~45%。
查看上面的效果對比可以發現,顯存越小的硬件在使用 SD WebUI Forge 繪圖時性能提升愈加明顯,最高可達 75%!也就是說不需要任何額外設置,Forge 即可支持在 4GB 顯存下運行 SDXL 以及在 2GB 顯存下運行 SD1.5。
2. 更優質的插件生態環境
Forge 相較原版,另一個重要的變化是對資源管理方面的程序進行了優化,因此各類功能插件的適配范圍大大提升,對插件開發者而言,不用再絞盡腦汁的對各類 Bug 做臨時修復,消除不同擴展插件相互干擾的風險,像之前開啟多個插件時容易發生的沖突報錯問題也被大大緩解。
3. 支持更多的采樣器
此外 Forge 里還在原版基礎上添加了更多的采樣器,包括但不限于 DDPM、DDPM Karras、DPM++2M Turbo、DPM++2M SDE Turbo、LCM Karras、Euler a Turbo 等,可以靈活選擇升級的采樣算法配合模型使用。
4. 預安裝更多拓展插件
作者在新的 Forge 中為我們默認預裝好了 ControlNet、FreeU、SVD 視頻生成、Z123 圖生 3D 對象等功能拓展,像原版 SD WebUI 沒有的 Ip-adapter 蒙版、controlnet 蒙版、photomaker 等功能在新的 Forge 中都得到了原生支持。
5. 不足之處
當然缺點也是有的了,那就是新的 Forge 沒法直接用秋葉大佬開發的整合包管理工具,默認情況下需要手動下載和安裝 Git、Python 等環境依賴程序來進行安裝,插件管理和更新也沒有啟動器來的方便。
好在 Forge 作者也很貼心的為我們準備好了官方安裝包,其中內置了 Git 和 Python,同樣可以實現一鍵啟用,下面看下如何正確安裝 Forge。
SD WebUI Forge 項目地址:
https://github.com/lllyasviel/stable-diffusion-webui-forge
我們在 SD WebUI Forge 的 Github 項目介紹里可以找到作者提供的 Win 系統一鍵下載安裝包地址,點擊下載解壓后我們可以看到以下幾個文件,其中 WebUI 部分放在「webui」的文件夾內,使用方法和之前一樣,對應模型、插件等也是安裝在該文件夾內。
在第一次啟用 Forge 時,一定要先雙擊啟動「update.bat」程序,因為官方提供的安裝包是剛發布的初代版本,存在早期的潛在報錯風險,啟用該程序可以幫我們自動更新至最新版。啟動過程會比較漫長,除了下載各種配置文件外,耗時最久的事需要下載一個體積 1.99G 的 CKPT 模型「realisticVisionV51_v51VAE.safetensor」,期間如果網絡條件不佳很容易中斷,下次又要從頭開始下載。
我這邊已經為大家下載好該模型,強烈建議大家直接下載至本地,提前放在 forge 根目錄下的「\webui\models\Stable-diffusion」文件夾內,「update.bat」程序運行時可直接跳過模型下載步驟,更新速度會快很多。
更新完成后會在瀏覽器中自動為我們打開新的 SD WebUI Forge 頁面,可以看到和此前 WebUI 界面完全一樣。在初次更新并正常運行,日后如果想再次啟用,只需雙擊「run.bat」程序就能正常運行了。
由于作者只提供了 Win 系統的一鍵安裝方法,相較而言 Mac 系統上的安裝只能手動部署且只支持 M 芯片的電腦。這里安裝 Forge 和安裝原版的 SD WebUI 流程差不多,依舊是通過終端先安裝軟件包管理器 Homebrew,接著安裝環境依賴程序 Python、Git,最后是 Forge 本體。
等到安裝完成后,你可以運行以下命令,終端將返回對應程序的版本號信息,由此檢測對應的幾個環境依賴程序是否被正確安裝。
brew --versionpython3 --versiongit --versionwget --version
接著在安裝 Forge 主程序時,最常見做法是通過 Git 調用作者在 Github 上的 Forge 程序包,下面是終端運行的調用代碼。
git clone https://github.com/lllyasviel/stable-diffusion-webui-forge
在這個過程中會花費很長時間下載對應的程序資源以及各種依賴文件,因此很容易出現各種不知名報錯,所以建議大家直接下載我已經成功運行的本地程序包來使用,其中很多依賴文件已經下載完成,可以一定程度上規避掉不少網絡導致的報錯問題。
此外,我在 Mac 部署后運行時還發現一個問題,就是 Forge 的根目錄文件夾不要和原 SD WebUI 放在一起,且 Forge 文件夾名稱也要改成和原版 SD WebUI 一致,否則會出現模型無法調用的情況。排查后猜測出現這樣的原因是調用程序中的命名還是使用原來的「stable-diffusion-webui」,而新的「stable-diffusion-webui-forge-main」無法被正確識別。
無論大家是自行在 Github 上下載安裝,還是使用我提供的程序包,在本地安裝完成后我們右鍵選擇根目錄文件夾在終端打開。
接著輸入以下命令來啟用 SD Forge,運行完成后會在默認瀏覽器中打開 http://127.0.0.1:7860/ ,也就是 Forge 的程序界面,到這里 Forge 就在 Mac 上就部署成功啦。
./webui.sh
如果你 Mac 同時安裝原版 SD WebUI 和 Forge,且前面你沒有修改 Forge 文件夾的名稱,很可能你啟用的還是原版的 SD WebUI,你可以在頁面下方判斷當前啟用的是哪個版本。
這里還有一個比較困擾大家的問題,如果你的電腦上同時安裝了原版的 SD WebUI 和新的 Forge,如果每個模型都要從原版那里復制一遍未免太麻煩,且浪費很多硬盤空間,下面教大家如何在 Forge 中直接調用原版 SD WebUI 的相關模型。
打開 SD Forge,我們選擇進入「webui」文件夾,在其中找到「webui-user.bat」文件,右鍵選擇使用文本編輯器打開,可以看到以下代碼:
這里就是內置好的模型資源調用程序,我們如果想實現直接調用原 SD WebUI 的模型文件,需要做的是將對應文件夾地址粘貼至這里,但是可以看到這里支持的調用模型類型只有 ckpt、hypernetwork、embeddings、lora 這 4 種,而 controlnet、gfpgan 等一眾其他模型文件并沒有,所以建議大家直接使用下面我準備好的這串代碼,可調用的模型文件會更加齊全。
@REM Uncomment following code to reference an existing A1111 checkout. set A1111_HOME=「你的原 SD WebUI 根目錄路徑」set VENV_DIR=%A1111_HOME%/venv set COMMANDLINE_ARGS=%COMMANDLINE_ARGS% ^ --ckpt-dir %A1111_HOME%/models/Stable-diffusion ^ --vae-dir %A1111_HOME%/models/VAE ^ --lora-dir %A1111_HOME%/models/Lora ^ --embeddings-dir %A1111_HOME%/embeddings ^ --controlnet-dir %A1111_HOME%/extensions/sd-webui-controlnet ^ --gfpgan-models-path %A1111_HOME%/models/GFPGAN ^ --codeformer-models-path %A1111_HOME%/models/CodeFormer ^ --esrgan-models-path %A1111_HOME%/models/ESRGAN ^ --realesrgan-models-path %A1111_HOME%/models/RealESRGAN ^ --ldsr-models-path %A1111_HOME%/models/LDSR ^ --swinir-models-path %A1111_HOME%/models/SwinIR ^ --bsrgan-models-path %A1111_HOME%/models/ESRGAN ^ --scunet-models-path %A1111_HOME%/models/ScuNET call webui.bat
下面演示下具體的操作步驟,我們找到原 SD WebUI 的文件夾,右鍵選擇「復制文件地址」,比如我這里直接使用的是秋葉大佬整合包,所以對應文件夾就是整合包的文件地址。注意原 SD WebUI 文件夾地址盡量不要包含中文字符和空格,否則后面可能會出現無法識別的情況。
接著將復制的文件地址添加至前面給大家提供的這串代碼中的「你的原 SD WebUI 根目錄路徑」位置,這里一定要記得將文件地址中的「\」替換為反斜杠「/」,否則是無法識別的。
然后將這一整串代碼粘貼至 SD Forge 的「webui-user.bat」文件中,最終的文件內容如下圖所示,記得要點擊保存。
設置完成后,我們正常運行 Forge 可以看到,原版的 SD WebUI 中的模型文件都已經被 Forge 成功調用了,像 ControlNet 等控制網絡模型也是可以正常使用的。
我在資源包里也為大家準備好了「webui-user.bat」文件,可以下載后替換掉 Forge 中的對應文件,然后將你本地的文件地址粘貼進去。此外,該方法不僅對 Forge 適用,像其他 A1111(指的是 Automatic1111,WebUI 項目的原始開發者)的運行文件也同樣有效。
除此之外大家在使用 Forge 時可能還會遇到其他問題,首先這里方法支持調用的只有模型文件,像各類擴展插件和輔助依賴程序是沒法調用的,因此還需要額外進行手動處理。
以 ControlNet 為例,除了需要基礎的控制網絡模型外,用于進行預處理的各類 Annotator 預處理器也是必不可少的,如果沒有提前下載安裝的話,在初次運行預處理器時會單獨下載,耗時不說還可能因為網絡不暢導致出現報錯情況。如果你遇到了類似問題,需要先檢查下原版 SD WebUI 中 ControlNet 預處理器對應的文件位置,比如下圖所示位于「\extensions\sd-webui-controlnet\annotator\downloads」。
而我們需要將其完整復制到 Forge 中,但由于作者對程序資源代碼進行了改寫,所以在 Forge 中對應的文件地址會不一樣。文末我也為大家整理好了完整的預處理器資源包,大家只需將「ControlNetPreprocessor」文件夾完整替換 Forge 的「\webui\models\ControlNetPreprocessor」文件夾即可。
以上是針對 ControlNet 舉例的情況,除此之外還有像 Adetailer 等其他插件在初次運行時也會自動下載對應的模型文件,大家可以在終端里查看下載的模型資源并搜索文件位置,參考上面的方法進行處理,這里就不一一說明了。
最后,如果你的模型文件在 Forge 中沒有被正確識別或運行時出現報錯,仔細檢查下和我提供的字符串內容是否保持一致,以及文件地址是否路徑正確。上面這套操作方法是我查了不少博主資料和自己實際測試可用的,如果你覺得太麻煩或者出現實在不知道如何處理的報錯,還是老老實實手動復制粘貼模型文件吧~
下面也給大家實際測試下在繪制相同質量圖像情況下原版 WebUI 和 Forge 的顯存占用對比,分別使用 SD V1.5 和 SDXL 模型來測試出圖效果。
對于 SD V1.5 模型,這里我選擇生成共 4 個批次,每個批次 8 張,共計 32 張 512 分辨率的圖像,下面是使用原版 SD WebUI 出圖效果和顯存消耗占比,可以看到共計用時 34.5s,平均占用顯存 6.1GB。
接著我們切換至 SDXL 模型,選擇生成 4 個批次,每個批次 2 張,共計 8 張 1024 分辨率的圖像,共計用時 52.1s,平均占用顯存 14.5GB。
我們保持提示詞內容、參數、種子值等信息完全不變,再使用 Forge 來繪圖看看,同樣情況下 SD V1.5 模型生成 32 張 512 分辨率圖像,共計用時 26.6s,平均占用顯存 9.8GB。
而當切換成 SDXL 模型時,Forge 累計用時 36.5s,平均占用顯存 12.7GB。
通過對比可以發現在同樣圖像數量和質量的情況下,Forge 在生成速度上確實比原版 SD WebUI 更具優勢,尤其在 SDXL 模型上優勢會更加明顯:顯存占用更低,生成速度反而更快。
最后關于 Forge 的實際運行效果我也查閱了一些博主的測評結果和他們評論區粉絲的看法,總結來看在本地顯卡配置較低的情況下,新的 SD WebUI Forge 帶來出圖體驗的提升會更加明顯,尤其在開啟 ControlNet 等插件的情況下穩定性都會比原版高上不少。在本文測試里我用的是新出的 4080s 顯卡,不排除顯存性能過剩帶來的誤差,如果有成功部署好的小伙伴也可以在評論區發表下自己的測試結果和看法。
不管怎么說,無論是原版的 SD WebUI,還是新的 Forge 都只是在操作程序上進行了調整,如果大家更習慣用秋葉大佬的整合包沒有必要非得更換 Forge,因為這并不會對日常的應用出圖有本質的影響。Forge 更大的價值是對日后新插件的開發兼容性會高上許多,相信日后隨著更多社區的資源,SD 的生態環境會更加全面和完善。
今天的內容到這里就全部結束啦,后續會給大家帶來更多配合 Forge 使用的應用教程,感興趣的小伙伴來波三連支持一下吧~
復制本文鏈接 文章為作者獨立觀點不代表優設網立場,未經允許不得轉載。
發評論!每天贏獎品
點擊 登錄 后,在評論區留言,系統會隨機派送獎品
2012年成立至今,是國內備受歡迎的設計師平臺,提供獎品贊助 聯系我們
標志設計標準教程
已累計誕生 729 位幸運星
發表評論 為下方 15 條評論點贊,解鎖好運彩蛋
↓ 下方為您推薦了一些精彩有趣的文章熱評 ↓