在 Mac 本機上跑 Stable Diffusion web UI

ddsakura
賽拉維的秋天 — ddsakura.blog
6 min readMar 26, 2023

--

上次試了在 Mac 上安裝 OpenAI Whisper 來幫忙產生的逐字文字檔,
這次要來試一下在本機跑 Stable Diffusion web UI。
Stable Diffusion是 2022 年發布的文字到圖像生成模型,
我們可以透過文字的描述生成 AI 圖像。
Stable Diffusion web UI 這個專案
顧名思義就是可以讓我們在本機/自己的Server,
建立網站來方便使用 Stable Diffusion 。

因為近期生成式 AI 很火熱,
所以市面上提供生成式 AI 圖像的服務也不少,
例如 Midjourney 和近期剛推出的 Bing Image Creator 。

那為什麼我還想要嘗試 Stable Diffusion web UI, 我想有以下原因:
1. 它可以安裝在本機上(或自建/雲端 server)
2. 生成圖片的訓練模型也都是放在本機上
3. 訓練模型有客製化的可能
4. 生成的圖片也都是保存在本機上
5. 最重要,就是想要試試看效果如何嘛!

根據 https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Installation-on-Apple-Silicon 上的指引,
我需要透過 brew 先安裝對應套件

brew install cmake protobuf rust python@3.10 git wget

PS1: python 我是透過 pyenv 安裝,可參考這篇
PS2: git 早就安裝了,不知道是透過什麼方法安裝的 XD

然後直接把專案的程式碼拉下來

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

接下來在專案的 root 目錄下, 執行

./webui.sh

當啟始化完成後,
terminal 的 console 就會顯示 Stable Diffusion web UI 跑在哪個 local URL,例如 http://127.0.0.1:7860
接下來透過瀏覽器連到該網址就可以看到 Stable Diffusion web UI 了。

在 Stable Diffusion web UI 上可以看到 txt2img 這個頁籤,
我們可以在這裡下正面 prompt 跟反向要避免的 prompt ,
此外,下方還有些參數可以調整,
例如一次生成幾張圖片、每張圖片的寬高大小之類,
接著按下 Generate 就可以生成圖片了。

不過在產生圖片之前,
我們得先把 Stable Diffusion models 下載回本機,
並放到下面的路徑中。

stable-diffusion-webui/models/Stable-diffusion

Stable Diffusion 官方的 models 可以在 Hugging Face 的服務中下載,
這些 models 的副檔名可能是“.ckpt” 或 “.safetensors”
參考網路上的分享資料,
https://github.com/camenduru/stable-diffusion-webui-colab 這邊,
也會有一些 models 的列表可以參考下載。

此外,
也可以到 https://civitai.com/ 看看別人分享用 AI 產生的圖片,
通常在該網站上這些圖片的資訊都會說明用哪些 prompt 產生,
另外也會說明是用哪一種模型產生,
然後可以發現除了 checkpoint (ckpt) 這種類型之外,
也有像是 Lora 這種類型的模型。

這類模型可以在我們選擇的 checkpoint 模型上進行微調,
例如改善畫風等。
這類的模型需要放在對應的目錄下,
例如: LoRA 要放到

stable-diffusion-webui\models\Lora

然後會有對應的語法需要放在我們 prompt 例如

<lora:aiUehara_v10:1>

Stable Diffusion web UI 也可以讓我們加入擴充功能,
例如 ControlNet https://github.com/Mikubill/sd-webui-controlnet
想要安裝Stable Diffusion WebUI的擴充功能,
最簡單的方法是點選Extension 頁籤中的Available子頁面,
並點擊「Load from:」, 就會列出可下載安裝的擴充功能。

如果想要將 Stable Diffusion Web UI 的介面換成中文,
可以安裝 https://github.com/benlisquare/stable-diffusion-webui-localization-zh_TW 並在 Settings 頁籤中的 Localization 設定翻譯為 zh_TW即可。
除此之外, 還可以安裝 https://github.com/journey-ad/sd-webui-bilingual-localization 這個擴充功能,
這樣我們就可以在使用者介面上同時看到中文跟英文,
我想這能幫助我們在網路上查找文件時,
有較好的對應關係。

最後展示用同樣提示詞在兩個不同 Stable Diffusion Model 的有趣產出。
一個 Model 是 chilloutmix

另一個是 Anything-v3

Stable Diffusion Web UI 還有不少可以嘗試的功能,
我也還在研究中,
歡迎有興趣的朋友一起交流。

--

--

ddsakura
賽拉維的秋天 — ddsakura.blog

I'm ddsakura. Love Mobile, Internet, Life and Family, wanna change the world through Innovation