Site icon May's Notes

免費無限生成 AI 圖!Stable Diffusion WebUI 安裝及使用教學(Mac)

00043 766247608

使用 Stable Diffusion WebUI 和 goofballMix 模型生成的圖

前言

這篇文章主要會使用 Anaconda 來安裝 Python 虛擬環境啟動 Stable Diffusion WebUI,如果是 Python 開發者的話直接 clone WebUI repo 然後運行就可以。

注意:Stable Diffusion WebUI 僅支援 Python 3.10。更多內容請參考官方的文檔:Installation on Apple Silicon

Stable Diffusion WebUI 是什麼?

系統需求

本文以 M1 pro, RAM 16GB, macOS Sonoma 14.0 為示範。

安裝 Git & Anaconda

1.安裝 Homebrew (若已安裝可跳過)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2.再使用 Homebrew 安裝 gitAnaconda (若已安裝可跳過)

brew install git
brew install --cask anaconda

如果使用的是 zsh 還需要另外配置路徑:

echo 'export PATH="/opt/anaconda3/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

3.用 Anaconda 安裝 Python 3.10.6 的虛擬環境,按 y 同意之後會自動下載必要的套件:

conda create --name sdwebui python=3.10.6

啟動 Python 虛擬環境

將 stable-diffusion-webui clone 到本地:

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

接著用 conda 啟動剛剛新建的 Python 虛擬環境,terminal 提示符前面會變成(sdwebui):

conda activate sdwebui

輸入 python --version 確認一下是否為 3.10.6 版本:

運行 WebUI

在虛擬環境中執行 webui.sh,它會自動下載 PyTorch 並安裝依賴套件。

cd ~/stable-diffusion-webui
./webui.sh

安裝過程需要一段時間,請耐心等待。

完成後會自動開啟 WebUI 頁面,通常 port 為 7860,使用的過程中請勿關閉 terminal:

如果要停止運行,直接在 terminal 中按 ctrl+C 停止即可。

若日後要啟動 WebUI,直接輸入以下指令即可:

conda activate sdwebui
cd ~/stable-diffusion-webui
./webui.sh

Troubleshooting

Torch is not able to use GPU

完整錯誤訊息如下:

Traceback (most recent call last):
  File "/Users/user/stable-diffusion-webui/launch.py", line 48, in <module>
    main()
  File "/Users/user/stable-diffusion-webui/launch.py", line 39, in main
    prepare_environment()
  File "/Users/user/stable-diffusion-webui/modules/launch_utils.py", line 356, in prepare_environment
    raise RuntimeError(
RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check

解決方式

編輯 webui-user.sh,在剛剛修改的 COMMANDLINE_ARGS 後面加上參數 --skip-torch-cuda-test

export COMMANDLINE_ARGS="--medvram --opt-split-attention --skip-torch-cuda-test"

加完之後重新再跑一次 ./webui.sh

安裝 AI 模型

預設模型(checkpoint)只有一個,所以需要下載。

AI模型下載網站:Civitai

推薦幾個不錯的模型:

單個 AI 模型動輒幾 GB,所以下載需要時間。

下載好的模型檔放到 stable-diffusion-webui/models/Stble-diffusion 目錄下後按 refresh icon 就可以讀取到了(不需要重啟WebUI):

模型副檔名為 .safetensors

使用 AI 文生圖

有多種生成方式,不過最基本的就是這兩種:

先試用一下文生圖,上方是正面關鍵詞下方是負面關鍵詞

正面關鍵字用於描述生成的圖片應該擁有哪些內容:

1 girl,short hair,without bangs,tall,skinny,stage,microphone,audience

負面關鍵詞是用來避免 AI 生成這些內容:

worst quality,grayscale,low quality

這是生成後的結果:

生成的圖片會自動保存到 ~/stable-diffusion-webui/outputs/txt2img-images/<日期> 目錄中,如果不要自動保存在 Settings 中將 Always save all generated images 取消勾選即可

關於關鍵詞如何下、參數如何設置,可以參考模型中的範例圖片,展開後會看到生成圖片用的關鍵詞和參數:

或者也有一些幫助生成關鍵字的插件,網上一搜就有滿多的。

推薦閱讀 最詳細的 Stable diffusion WebUI 操作教學 – txt2img

Troubleshooting

Connection errored out

生成圖片時出現 Connection errored out.

檢查 terminal 發現有一個錯誤導致 WebUI 會自動關閉:

serWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown

解決方式

用文字編輯器打開 /Users/jennamei/stable-diffusion-webui/webui-user.sh 添加 --no-half 後重啟 WebUI 應該就可以解決了:

export COMMANDLINE_ARGS="--skip-torch-cuda-test --share --skip-version-check --no-half"

Not enough memory, use lower resolution (max approx. 1152×1152).

完整錯誤訊息:

Not enough memory, use lower resolution (max approx. 1152x1152). Need: 2.4GB free, Have:1.0GB free

就是設置的寬高太大了,記憶體不足,把解析度調小再生成就可以。

設置中文化/雙語對照介面

繁體中文擴充:https://github.com/benlisquare/stable-diffusion-webui-localization-zh_TW
雙語對照擴充:https://github.com/journey-ad/sd-webui-bilingual-localization

繁體中文介面

1.Extensions -> Available -> 取消勾選 localization -> Load from

2.搜索 zh_TW 後按 Install

3.切到 Installed 標籤頁,勾選剛剛下載的 zh_TW 擴展後按 Apply and restart UI

4.如果重啟後沒有變成中文化介面,需要自行到 Settings -> User Interface -> Localization 切換然後按 Apply settings -> Reload UI

雙語對照

單純轉為中文化介面的話可能會無法與原文對上號,所以建議再安裝雙語對照擴充。

1.先將 Settings -> User Interface -> Localization 切成 None

2.Extensions -> Install from URL -> Install

3.Installed -> Apply and restart UI

4.找到 Settings 左側會多了一個 Bilingual Localization 的標籤頁,將語言切成 zh_TW 之後 Apply settings -> Reload UI 即可。

Troubleshooting

extension access disabled because of command line flags

安裝擴展時可能會出現這個錯誤訊息:

AssertionError: extension access disabled because of command line flags

解決方式

確認你有沒有使用 --share--listen 命令,有的話把它刪除再重啟。

export COMMANDLINE_ARGS="--medvram --opt-split-attention --skip-torch-cuda-test --skip-version-check --no-half"

Reference

Exit mobile version