用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. 調整啟動參數#
- 使用Anaconda建立Stable Diffusion WebUI的虛擬環境
conda create --name sdwebui_cpu python=3.10.6
conda activate sdwebui_cpu
- 進入conda環境後,安裝Intel CPU版的PyTorch
conda install pytorch torchvision torchaudio cpuonly -c pytorch
- 編輯啟動指令稿(Linux為
webui-user.sh
,Windows為webui-user.bat
),照作業系統修改成如下樣子。使用環境變數告訴系統不要使用GPU。
# 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"
- 這樣啟動後算圖即會只使用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