以CPU only模式跑Stable Diffusion WebUI

用CPU硬跑AI繪圖軟體 ~ Stable Diffusion WebUI,會對硬體和精神造成巨大損傷。

That’s a lot of damage!

有幾種情況你會想用CPU跑Stable Diffusion:

  • 電腦顯示卡很爛但仍想玩玩看AI繪圖
  • 顯示卡勉強可以算圖,但一訓練VRAM記憶體就爆炸
  • Stable Diffusion無法存取裝置GPU,例如樹莓派、Android手機
  • AMD或Apple使用GPU有困難

我個人是屬於第二個理由。

如果是這樣的話,用CPU跑也不是個壞選擇,只是非常慢。訓練模型更甭說了,跑個一萬年,跑到中華民國萬萬歲。

1. 調整啟動參數

  1. 使用Anaconda建立Stable Diffusion WebUI的虛擬環境
1
2
conda create --name sdwebui_cpu python=3.10.6
conda activate sdwebui_cpu
  1. 進入conda環境後,安裝CPU版的PyTorch
1
conda install pytorch torchvision torchaudio cpuonly -c pytorch
  1. 編輯啟動指令稿(Linux為webui-user.sh,Windows為webui-user.bat),照作業系統修改成如下樣子。使用環境變數告訴系統不要使用GPU。
1
2
3
4
5
6
7
# Linux版
export CUDA_VISIBLE_DEVICES=-1
export COMMANDLINE_ARGS="--use-cpu all --no-half --precision full --skip-torch-cuda-test"

# Windows版
set CUDA_VISIBLE_DEVICES=-1
set COMMANDLINE_ARGS="--use-cpu all --no-half --precision full --skip-torch-cuda-test"
  1. 這樣啟動後算圖即會只使用CPU,而不會使用GPU。

2. CPU與GPU模式速度的差距

Intel i5-7400算一張512x512像素的圖需要10分鐘,相較之下低階顯示卡GTX 1050Ti算一張圖30秒。

完全被屌打。

那如果異想天開用CPU來訓練Textual Inversion個人模型呢?就算核心和RAM全跑滿,光10000步就需要48小時,你可以看到這是天殺的時長。

與其浪費電跑這個,還不如去蹭Google Colab的免費GPU運算資源呢。尼看看,Google Colab訓練模型只要二小時

除非是想大膽嘗試Android手機跑Stable Diffussion的舉動,否則有電腦和雲端卻還用CPU跑就是…浪費時間XD

參考資料

如果本網站文章對您有幫助,歡迎贊助我。