[Stable diffusion webui] xformers 安裝

使用Stable diffusion webui一陣子後,發現xformers沒安裝。安裝完後,運算效率差很大,感受到為何專(玩)家們都要N卡。

安裝過程很凹,搞一個晚上,所以要寫筆記,備忘一下。


檢查Stable diffusion程式啟動訊息

2024年一月底左右。

在Windows系統上用了Stable diffusion webui一陣子後,突然想到要去看程式啟動時的訊息。

一看才知道,裡面有一堆提示說明,軟體有欠次要安裝。

這些次要安裝,依照啟動訊息畫面上的提示說明,都可以迅速解決。

唯獨有一個xformers搞一個晚上。

終於搞定了。

運氣好安裝成功,寫個小筆記,紀錄一下。
也許下次不會安裝成功(也許還有關鍵步驟漏掉),但小筆記可以增加下次成功的機會。


xformers安裝

第一次測試

根據 "xFormers - Toolbox to Accelerate Research on Transformers" 這篇文章。

關鍵資料
(RECOMMENDED, linux & win) Install latest stable with pip: Requires PyTorch 2.1.2
# cuda 11.8 version
pip3 install -U xformers --index-url https://download.pytorch.org/whl/cu118

試了好幾次,無效!

第二次測試

根據 "Xformers Library (Optional)" 這篇文章。

資料太長,看到一半就放棄。

後來就亂下指令,隨便安裝。

第N次測試 ( N > 7 )

根據 "How on earth can I install xformers?" 這篇文章。

關鍵資料
This method works well for me (If you are using Nvidia gpu):
1. Install Nvidia Cuda with version at least 11.8, restart computer
2. Put --xformers into webui-user.bat (after set COMMANDLINE_ARGS=)
3. Run the webui-user.bat and let it install
看完關鍵資料後,又回去看第二次測試的資料,去依照指示安裝。
主要就是 
(1) VS Build Tools 2022 + Desktop development with C++ 
(2) Nvidia CUDA

軟體安裝的版本,都是新版,而不是資料上寫的版本。
過程中,*.bat有時候需要雙重參數同時下 "COMMANDLINE_ARGS= --xformers  --reinstall-xformers"

成功安裝後,軟體啟動後,軟體操作畫面底下會有版本說明。表示安裝成功。

軟體啟動後,軟體操作畫面底下的"xformers"後面顯示版本號碼"0.0.20"。表示安裝成功。原本沒有安裝時,顯示"N/A"。


意外狀況

2024-01-23 星期二

在成功安裝xformers幾天後,Stable diffusion webui突然崩潰了,無法使用。
(原因可能是獻慶在Stable diffusion webui計算時,又同時去修正Regional Prompter的參數。)

在重新安裝Stable diffusion webui在另一個資料夾後,修正完參數"COMMANDLINE_ARGS= --xformers"後,即可使用xformers,而不用重新在走一遍安裝流程。算是好事。


關於xformers

在 "xFormers - Toolbox to Accelerate Research on Transformers" 這篇文章中由講一下xformers是什麼

  1. Customizable building blocks: Independent/customizable building blocks that can be used without boilerplate code. The components are domain-agnostic and xFormers is used by researchers in vision, NLP and more.
  2. Research first: xFormers contains bleeding-edge components, that are not yet available in mainstream libraries like PyTorch.
  3. Built with efficiency in mind: Because speed of iteration matters, components are as fast and memory-efficient as possible. xFormers contains its own CUDA kernels, but dispatches to other libraries when relevant.

英文單字,獻慶認得出來,但意思是啥,不曉得。

總之,該篇文章文末有附上測試數據圖表,顯示xformers確實可以加速Stable diffusion的運算。


感想

1.
按照GitHub的指引去安裝,雖然會卡住,但是多找幾個資料,多猜答案,多試幾次,還是有機會成功。

2.
要搞一個晚上,主要是好幾支程式都太大,2GB以上的好幾個。打指令跟安裝的時間都很快,主要都卡在下載時間了。

3.
算圖速度確實有明顯提升。而且節省的時間相當令人有感。
Upscale的參數也能調上去了。之前調到3,記憶體會炸掉,程式會停止。現在可以輕鬆突破3,圖也可正常算出來,輸入4也OK,只是要消耗更多的計算時間。GPU的記憶體使用量,從全滿的8GB,降低到1.6GB左右,下降幅度驚人。GPU的記憶體使用量下降後,Batch size的參數也能跟著調上去了,調到8也OK,否則之前都在1。

"A robot playing classical guitar." 由Stable diffusion計算所得。


相關Po文

若要知道這次xformers安裝在哪台電腦,規格如何? 作業系統? 請看下面Po文。

[微開箱][升級] 華碩 ASUS Vivobook Pro 16X OLED N7601ZW-0038K12700H零度黑


相關連結



xFormers - Toolbox to Accelerate Research on Transformers


社群媒體討論平台

如果對該主題有興趣,想要討論,也可以採用以下的社群媒體平台。歡迎討論。






留言

張貼留言

這個網誌中的熱門文章

什麼是電池的CCA(Cold Cranking Amperes)? 如何量測CCA?

[數據處理] Excel 日期時間 換算成 秒

[Arduino] 使用示波器來看Arduino的UART, Inverted Software serial及RS-232訊號並對其進行解碼