本文將分享如何在 M1 / M2 的 Macbook 上安裝 Stable Diffusion WebUI。首先會提供一些 Macbook 的規格建議,接著會介紹如何安裝環境,以及初始化 Stable Diffusion WebUI。最後還會介紹如何下載 Stable Diffusion 模型,並提供一些熱門模型的下載連結。如果你從來沒有接觸過 Python 開發也不用擔心,本文提供了詳細的安裝步驟供你參考!
目錄
建議的 Macbook 規格
澆點冷水XD,Stable Diffusion 模型計算非常消耗資源,雖然已經可以在 M1 / M2 的 Macbook 上跑,但筆電規格依然大大影響使用體驗。根據我的經驗,建議
- CPU 至少是 M1 / M2 Pro 以上
- Memory 32 GB 至少以上
我的 M1 Pro Macbook 是 CPU 10 核, GPU 16 核的版本,相當於 Nvidia GTX 1660 Ti。跑一張 768 x 512, 20 steps 的圖大約要兩分多鐘。對照目前一線顯卡,可能一樣時間可以跑 2048 x 2048 的解析度。
另外 M1 / M2 CPU 和 GPU 是共用記憶體空間,當需要產生高解析度的圖時,記憶體壓力會迅速提升!以我的 Macbook 為例,因為記憶體限制,無法產生 1024 x 768 以上的大小。而且算圖的時候記憶體壓力會變成黃色,整台電腦相當卡。不過基本上可以使用,且能夠滿足一般性需求。文末會提供調教方法,讓小記憶體的 Macbook 也能嘗鮮!
安裝環境
如果你是 python 開發者,這一段大部分可以跳過。如果是新手,請細心走完安裝步驟!
延伸閱讀:
如何在 M1 macbook 上安裝 python 環境
macOS 中 Python 版本太多如何管理?試試 pyenv 吧!
安裝 Homebrew
到 console 輸入以下指令安裝
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安裝基本套件
依照 AUTOMATIC1111/stable-diffusion-webui 官方建議,安裝一些基本開發套件
$ brew install cmake protobuf rust git wget
接著安裝 python。若非 python 開發者,建議照官網建議,直接用 brew 安裝比較簡單。反之,建議用 pyenv 安裝,避免 python 版本混亂問題。
(pyenv 安裝請參考 macOS 中 Python 版本太多如何管理?試試 pyenv 吧!)
需注意的是,目前(~2023/3) Stable Diffusion WebUI 僅支援 python 3.10
,其他版本可能會有問題!安裝前可到 AUTOMATIC1111/stable-diffusion-webui 查看
# 使用 brew 安裝
$ brew install [email protected]
# 使用 pyenv 安裝
$ pyenv install 3.10.6
# 啟動 3.10.6
$ pyenv local 3.10.6
初始化 Stable Diffusion WebUI
在 console 下指令 clone 整個 repository
$ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
進入 Stable Diffusion WebUI folder,執行 webui.sh
script。第一啟動時會自動安裝 python 依賴套件,需要一段時間
$ cd stable-diffusion-webui
$ ./webui.sh
當看到以下訊息時,就可以用瀏覽器連 http://127.0.0.1:7860
進入 WebUI 囉!
...
Model loaded in 6.3s (create model: 0.7s, apply weights to model: 2.9s, apply half(): 1.5s, move model to device: 0.9s, load textual inversion embeddings: 0.2s).
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
若想停止,回到執行 webui.sh
的 console 中按 Ctrl + C
即可。下次想要用時,輸入 ./webui.sh
就能啟動囉!
註:由於這是一個 local 的 Web Server,程式是跑在 console
裡的,提醒一下非開發者的朋友們,使用時不要把 console 給關掉囉!
下載 Stable Diffusion 模型
目前只有起 Stable Diffusion 的 WebUI
,若要開始算圖,還需要下載 模型權重
(checkpoint)。
Stability AI 目前釋出以下提供下載:
- Stable DIffusion 1.4 (sd-v1-4.ckpt)
- Stable Diffusion 1.5 (v1-5-pruned-emaonly.ckpt)
- Stable Diffusion 1.5 Inpainting (sd-v1-5-inpainting.ckpt)
- Stable Diffusion 2.0 (768-v-ema.ckpt)
- Stable Diffusion 2.1 (v2-1_768-ema-pruned.ckpt)
註:其中 2.x 的模型,還需要另外下載
v2-inference-v.yaml
檔,修改成對應 2.x model 檔名,並保留.yaml
結尾副檔名,與模型檔放在同樣目錄中。 (如模型是768-v-ema.ckpt
,則將 yaml 改名為768-v-ema.yaml
)
將模型檔放到 stable-diffusion-webui/models/Stble-diffusion
下
回到 WebUI,左上角模型選擇區點 reload 一下,就能選到新的模型
若想產生正妹圖,官方模型一定無法滿足你,推薦以下幾個熱門模型 (checkpoint):
若想要風景,可以試試這些:
但以上都是抓 整個重新訓練的模型
下來,非常佔空間,因此衍生出類似外掛的 LoRA 模型,大小就小非常多。
之前在新聞很常看到用來產生正妹照的模型(已經在 civitai 下架,只能從 Huggling Face 下載):
若想要水墨畫風格,可以試試:
古裝風格:
先請各位下載好備著,下一篇我們再實際上陣!
延伸閱讀:最詳細的 Stable diffusion WebUI 操作教學 – txt2img
Troubleshooting
我記憶體不夠大,有辦法跑嗎?
可以在啟動 WebUI 時加入以下參數
# 使用中量記憶體
$ ./webui.sh --opt-split-attention-v1 --medvram
# 使用低量記憶體
$ ./webui.sh --opt-split-attention-v1 --lowvram
實測發現用 --lowvram
除了算圖速度變慢,畫質也可能變差,以下是完全同樣的 prompt 、seed 等參數,用預設和加 --lowvram
算出來的圖
除了品質差異外,連構圖也不一樣,因此建議還是儘量用預設值跑,壓榨你的筆電吧!
延伸閱讀
最詳細的 Stable diffusion WebUI 操作教學 – txt2img
LoRA 是什麼?如何使用?| Stable Diffusion
如何用 Stable Diffusion 產生高解析度的圖?
兩階段解決 Stable Diffusion 臉崩問題
免費用 Google Colab 玩 Stable Diffusion WebUI
不用顯卡也能玩 Stable Diffusion WebUI – 使用 AWS 架設