Stable Diffusion WebUI是一款開源免費的AI繪圖軟體,其使用CompVis開發的Stable Diffusion模型,支援文生圖(text to image,從文字描述畫出圖片)、圖生圖(image to image,參考現有圖片畫新圖)的功能。
WebUI版提供相對容易使用的網頁界面,因此只要個人電腦有強力的GPU,不論是Linux/Windows/MacOS都可以裝,支援正體中文界面。
這篇是Ubuntu安裝Stable Diffusion WebUI繪圖的教學,支援Nvidia和AMD顯示卡。如果想要的話,Stable Diffusion WebUI亦可以在伺服器部署,並用另一台電腦存取圖形界面。
0. 系統環境
本文為Linux系統的安裝過程,Windows請參考這篇,macOS參考這篇。
Stable Diffusion WebUI十分吃GPU性能。硬體不夠力可考慮用Google Colab雲端跑。
- 作業系統:Ubuntu 22.04 LTS
- 核心版本:5.19.0
- CPU: Intel i5-7400
- GPU: Nvidia GTX1050 Ti 4GB
- RAM: 16GB
- 準備至少10GB的硬碟空間
1. 下載Stable Diffusion的模型
模型是AI繪圖的重要依據,檔案很大所以建議先下載。繪圖用的模型可以一次安裝很多個。
HuggingFace有很多類別可以下載,看要畫真人還是動漫風格,至少需要下載一個。
點進下載模型的連結,選擇下載副檔名為.ckpt
或.safetensors
的模型即可。或者將連結複製起來用wget指令下載。
這裡推薦一些Ivon綜合個人以及網路上的意見覺得不錯的模型。
1.1. 寫實風模型
Stable Diffusion v2.1,簡稱SD,是CompVis與合作團隊發表的原始模型,適合畫真人、動物、自然、科技、建築的圖像,亦學習過歷史上許多畫家的畫風。
Chilloutmix寫實風格的模型,適合畫出2.5次元,融合日韓真人與動漫風格的圖像。
Deliberate基於SD-1.5模型,適合繪製精緻寫實風格的人物、動物、自然風景。
1.2. 動漫風模型
Anything v4.5適合畫動漫圖,作者宣稱不需要打一堆提示詞也能出漂亮的圖。
Waifu Diffusion v1.4是純粹使用Danbooru圖庫訓練而成,適合畫動漫圖。
Hentai Diffusion適合畫動漫圖,模型已使用大量負向提示詞訓練過以排除不良結果,另提供embeddings方便繪圖時使用。
DreamShaper是基於SD-1.5模型,繪製精細動漫人物與油畫風格的模型。
OrangeMix3,混合多種風格的動漫繪圖模型,偏寫實。
2. 安裝Stable Diffusion WebUI
2.1. 安裝顯示卡驅動
2.1.1. Nvidia
安裝專有Nvidia驅動,之後重開機。
安裝CUDA
確認驅動安裝是否正確安裝
|
|
2.1.2. AMD
- 安裝AMD驅動程式,重開機。
|
|
- 安裝AMD ROCm,中間需要重開機。
|
|
- 確認驅動是否有正確安裝
|
|
2.2. 安裝Anaconda
- 安裝Python、wget、git。
|
|
Stable Diffusion WebUI的Wiki寫明Python版本需為3.10.6,為此請先安裝Anaconda。
建立Python 3.10.6的虛擬環境
|
|
2.3. 複製Stable Diffusion WebUI儲存庫
- 將Stable Diffusion WebUI複製至使用者家目錄
|
|
- 將剛剛下載的
.ckpt
模型檔移動至stable-diffusion-webui/models/Stable-diffusion
目錄。
|
|
- 啟動虛擬環境:
|
|
- 如果想要於bash script自動以conda啟動虛擬環境,可以把這二行加入至
webui-user.sh
頂端:
|
|
於conda環境下,最好使用conda指令來安裝套件。不過Stable Diffusion WebUI仍偏好以pip安裝。
2.4. 設定啟動引數
GPU晶片為Nvidia且VRAM大於8GB的可跳過此步驟。
根據Wiki,有些GPU需要修改啟動引數才能正常啟動WebUI。
用VIM編輯webui-user.sh
。
若GPU VRAM小於等於4GB的話加入COMMANDLINE_ARGS=--medvram --opt-split-attention
引數,防止RuntimeError: CUDA Out of memory
錯誤。`
AMD顯示卡需要另外加上 --precision full --no-half
引數,否則繪製的圖可能會一片漆黑。
額外加上--listen
參數讓其他電腦能以IP存取網頁界面,--share
則是產生一組Gradio網址。
如果執行webui-user.sh
出現can't open file '/stable-diffusion-webui/launch.py'
的錯誤,則編輯webui-user.sh
,將install_dir
後面改成$(pwd)
。
2.5. 啟動Stable Diffusion WebUI
- 執行
webui.sh
,它會自動下載PyTorch並安裝依賴套件。跑完它應該會顯示一組網址,本機用瀏覽器開啟http://127.0.0.1:7860
進入網頁圖形界面。
|
|
- 若要從其他電腦存取,則是輸入
http://本機IP:7860
連線。記得開放防火牆:
|
|
2.6. 如何更新Stable Diffusion WebUI
Stable Diffusion WebUI專案原始碼是託管在Github,開發迭代速度很快,建議每週適時更新程式。但更新頻繁也代表功能容易損壞,因此安全的更新方式如下:
- 在Stable Diffusion WebUI的目錄開啟終端機,取得目前分支,會印出一組五位數代碼
|
|
- 接著拉取最新分支,更新到最新版。
|
|
如果更新後出現
Merge branch 'master' of
的訊息,請按Esc
鍵,輸入:q!
退出即可。更新後如果有功能壞掉就退回之前的分支版本。
|
|
3. Stable Diffusion WebUI基本使用方式
介紹SD WebUI內建的基本功能:「文生圖」、「圖生圖」、「內補繪製」的用法。
請看Stable Diffusion WebUI基本功能使用教學
4. 擴充功能 Extensions
Stable Difussion WebUI的Extensions頁面能安裝擴充功能,在繪圖的時候整合其他AI技術,或是簡化操作。
一般來說擴充功能沒有限定作業系統,不過有些是設計給Windows用的,這點要注意。
請看Stable Diffusion WebUI實用擴充功能使用教學
5. 訓練自己的模型 Training
警告:跟繪圖不同,訓練模型至少需要10GB的VRAM,也就是RTX3060等級以上的GPU。
訓練自己的小模型有很多好處,例如可以在現有模型的基礎上,讓AI懂得如何繪製更精確的風格或者特定角色。
訓練小模型的具體步驟請看這篇:Stable Diffusion模型訓練教學
6. 延伸閱讀
- Rombach, R., Blattmann, A., Lorenz, D., Esser, P., & Ommer, B. (2022). High-resolution image synthesis with latent diffusion models. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 10684-10695).
- Stable Diffusion web UI Wiki - GitHub
- r/StableDiffusion - Reddit
- Voldy Retard Guide The definitive Stable Diffusion experience ™