在 Mac 本機上跑 Stable Diffusion web UI
上次試了在 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 還有不少可以嘗試的功能,
我也還在研究中,
歡迎有興趣的朋友一起交流。