本機AI繪圖:Linux系統安裝Stable Diffusion WebUI

Stable Diffusion WebUI是一款開源免費的AI繪圖軟體,其使用CompVis開發的Stable Diffusion模型,支援文生圖(text to image,從文字描述畫出圖片)、圖生圖(image to image,參考現有圖片畫新圖)的功能。

一些Stable Diffusion的頹。模型:HD-22-vae,僅使用Inpaint微調手部,無其他後製

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

  1. 安裝專有Nvidia驅動,之後重開機。

  2. 安裝CUDA

  3. 確認驅動安裝是否正確安裝

1
2
nvidia-smi
nvcc --version

2.1.2. AMD

  1. 安裝AMD驅動程式,重開機。
1
2
3
sudo apt update && sudo apt upgrade -y
wget https://repo.radeon.com/amdgpu-install/22.40.3/ubuntu/focal/amdgpu-install_5.4.50403-1_all.deb
sudo apt-get install ./amdgpu-install_5.4.50403-1_all.deb
  1. 安裝AMD ROCm,中間需要重開機。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
sudo apt install linux-headers-`uname -r` linux-modules-extra-`uname -r`
curl -fsSL https://repo.radeon.com/rocm/rocm.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/rocm-keyring.gpg
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/amdgpu/5.4.2/ubuntu jammy main' | sudo tee /etc/apt/sources.list.d/amdgpu.list
sudo apt-get update
sudo apt install amdgpu-dkms
sudo reboot
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/rocm/apt/5.4.2 jammy main' | sudo tee /etc/apt/sources.list.d/rocm.list
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' | sudo tee /etc/apt/preferences.d/rocm-pin-600
sudo apt-get update
sudo apt install rocm-hip-sdk rocm-opencl-sdk
echo "export LD_LIBRARY_PATH=/opt/rocm-5.4.2/lib:/opt/rocm-5.4.2/lib64" >> ~/.bashrc
source ~/.bashrc
  1. 確認驅動是否有正確安裝
1
2
3
4
# 應會看到driver=amdgpu
sudo lshw -c video
# 查看ROCm是否正確安裝
sudo apt show rocm-libs

2.2. 安裝Anaconda

  1. 安裝Python、wget、git。
1
sudo apt install python3 python3-pip python3-virtualenv wget git
  1. Stable Diffusion WebUI的Wiki寫明Python版本需為3.10.6,為此請先安裝Anaconda

  2. 建立Python 3.10.6的虛擬環境

1
conda create --name sdwebui python=3.10.6

2.3. 複製Stable Diffusion WebUI儲存庫

  1. 將Stable Diffusion WebUI複製至使用者家目錄
1
2
cd ~
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
  1. 將剛剛下載的.ckpt模型檔移動至stable-diffusion-webui/models/Stable-diffusion目錄。
1
mv ~/anything-v4.5-pruned.ckpt  stable-diffusion-webui/models/Stable-diffusion/
  1. 啟動虛擬環境:
1
conda activate sdwebui
  1. 如果想要於bash script自動以conda啟動虛擬環境,可以把這二行加入至webui-user.sh頂端:
1
2
eval "$(conda shell.bash hook)"
conda activate sdwebui

於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

  1. 執行webui.sh,它會自動下載PyTorch並安裝依賴套件。跑完它應該會顯示一組網址,本機用瀏覽器開啟http://127.0.0.1:7860進入網頁圖形界面。
1
2
cd ~/stable-diffusion-webui
./webui.sh
  1. 若要從其他電腦存取,則是輸入http://本機IP:7860連線。記得開放防火牆:
1
2
sudo ufw allow 7860/tcp
sudo ufw reload

2.6. 如何更新Stable Diffusion WebUI

Stable Diffusion WebUI專案原始碼是託管在Github,開發迭代速度很快,建議每週適時更新程式。但更新頻繁也代表功能容易損壞,因此安全的更新方式如下:

  1. 在Stable Diffusion WebUI的目錄開啟終端機,取得目前分支,會印出一組五位數代碼
1
git rev-parse --short HEAD
  1. 接著拉取最新分支,更新到最新版。
1
git pull
  1. 如果更新後出現Merge branch 'master' of的訊息,請按Esc鍵,輸入:q!退出即可。

  2. 更新後如果有功能壞掉就退回之前的分支版本。

1
git checkout "分支代碼"

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. 延伸閱讀

如果本網站文章對您有幫助,歡迎贊助我。