:::

在Ubuntu安裝Stable Diffusion Web UI / Install Stable Diffusion Web UI in Ubuntu

2023-0319-125054.png

要當魔法師比我想象中的還要辛苦。


環境準備 / Environment

2023-0319-113045.png

我的電腦是Thinkpad L13 Yoga。本來電腦是Windows,但我另外安裝了Ubuntu作業系統。作業系統使用的是Ubuntu 22.04,桌面環境是KDE 5.92 / Plasma 5.24.7。CPU是Intel i7 11代。

必須注意硬碟空間是否充足。要運作Stable Diffusion Docker Web UI以及其他的模型檔案,我建議至少預留50GB的空間。

顯示卡 / GPU

razer-book-10-j_1100.webp.png

(圖片來源:Techspot)

Thinkpad L13 Yoga本身並沒有顯示卡,我另外購買了Razer Core X外接顯示卡盒,裝上NVIDIA Geforce RTX 3060後,以Thunderbolt 3外接的形式使用顯示卡。

https://medium.com/@scofield44165/ubuntu-20-04%E4%B8%AD%E5%AE%89%E8%A3%9Dnvidia-driver-cuda-11-4-2%E7%89%88-cudnn-install-nvidia-driver-460-cuda-11-4-2-cudnn-6569ab816cc5 

要在Ubuntu安裝顯示卡資源並不容易。除了顯示卡驅動程式「nividia-driver-*」(星號為版本,目前是525)需要安裝之外,還需要為X11桌面環境的設定檔「/etc/X11/xorg.conf」進行設定。

https://ttyusb0978.medium.com/nvidia-container-runtime-%E5%AE%89%E8%A3%9D-b5df27020762 

如果要讓Docker使用Nvidia顯示卡的資源,需要安裝nvidia-container-runtime。感謝漫無目的學習筆記的整理,安裝方法如下:

curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update
sudo apt-get install nvidia-container-runtime -y

至此我們算是做好踏入Stable Diffusion的準備。


安裝Stable Diffusion Docker Web UI / Install Stable Diffusion Docker Web UI

https://github.com/AbdBarho/stable-diffusion-webui-docker/

https://github.com/AbdBarho/stable-diffusion-webui-docker/

現今使用Stable Diffusion需要搭配的網頁操作介面(Web UI),兩者需要安裝超級大量的工具。一樣的,我不建議直接在系統上安裝這些套件,最好是用Docker容器的形式來用它。還好,Stable Diffusion Docker Web UI專案整理的很不錯。

首先,先將Stable Diffusion Docker Web UI專案的程式碼用git複製到你電腦下的路徑。此時要注意你擺放程式碼的路徑。空罐王認為Stable Diffusion會大量寫入與讀取硬碟,建議此路徑不要擺在SSD硬碟上。我個人是把它放到MicroSD記憶卡上,因為筆電的SSD硬碟空間也不夠用。

cd ~/
sudo apt-get install -y git
git clone https://github.com/AbdBarho/stable-diffusion-webui-docker.git

安裝 / Setup

https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Setup

https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Setup 

接下來根據Stable Diffusion Docker Web UI的說明來執行兩個指令:

docker compose --profile download up --build
docker compose --profile auto up --build

第二個指令決定了你使用Stable Diffusion Docker Web UI要用那種介面。官方提供了「invoke」、「auto」、「auto-cpu」、「sygil」、「sygil-sl」這幾種,他們推薦從「invoke」或「auto」開始。

2023-0319-115416.png

上圖是我以auto啟動的結果。這也是大部分Stable Diffusion相關教學會使用的預設介面。

其他介面可以參考Stable Diffusion Docker Web UI的介紹:

https://github.com/AbdBarho/stable-diffusion-webui-docker/#features

https://github.com/AbdBarho/stable-diffusion-webui-docker/#features 

這兩個指令會安裝非常非常久的時間。它會一邊安裝必要套件,一邊下載Stable Diffusion所需要的模型。我個人感覺大概要花兩個小時才能跑完。

2023-0319-115806.png

如果看到「Running on local URL:  http://0.0.0.0:7860」。表示已經順利跑完了,你可以開啟瀏覽器,打開 http://0.0.0.0:7860 看看。此時Docker還不會退出,它會在你使用Stable Diffusion Docker Web UI操作的時候,在背後進行計算。

如果你沒有走到這一步,Docker就意外退出的話,請仔細看看錯誤訊息,上Google找尋解決方法看看。

關閉 / Close

如果要關閉Stable Diffusion Docker Web UI,請按Ctrl + C讓Docker自己關閉。千萬不要在Stable Diffusion Docker Web UI還在運作的時候進行休眠或睡眠,這會導致Docker使用GPU的通訊出問題,必須要整台電腦重新啟動才能恢復運作。

客製化模型:基礎畫風與角色設定 / Custom models: Checkpoint and LoRA

在安裝Stable Diffusion Docker Web UI的等待途中,我建議你同時來找尋Stable Diffusion所需要的基礎畫風(checkpoint)跟角色設定(LoRA)。

https://civitai.com/

https://civitai.com/

相關的資源可在CIVIT AI找到。

2023-0319-120259.png

點選右上角的篩選圖示,我們可以選擇瀏覽Checkpoint或LoRA。

  • Checkpoint 基礎畫風:影響到整張圖的畫法。
    • 有些Checkpoint是真人風格,例如ChilloutMix;有些Checkpoint是動漫人物風格,例如AMOS3
    • 每張圖基本上只能用一種Checkpoint。進階者可以用Merging Models來合併模型,不過大多時候很難產生出一致的風格。
    • 每個checkpoint檔案大致上是2.5GB至6GB不等。
    • 下載後需要擺到資料夾位置「./stable-diffusion-webui-docker/data/StableDiffusion/」。
  • LoRA 角色設定:影響到圖裡面特定角色呈現的樣貌。
    • 有些LoRA是讓人物穿上泰國傳統服飾,例如Thailand Tradition Dress;有些是讓整個畫風變成水墨畫,墨心 MoXin
    • 一張圖可以同時套用多個LoRA,每個LoRA設定不同權重比例。
    • 每個LoRA檔案大約是10MB至200MB不等。
    • 下載後需要擺到資料夾位置「./stable-diffusion-webui-docker/data/Lora/」。

2023-0319-121201.png

https://civitai.com/models/12597/moxin

按右上角的「Download Lastest」即可開始下載。

如何開始你的畫作? / Start up 

一開始大家可能不知道要畫出什麼樣的作品。這時候可以參考CIVIT AI上高手的成品。

2023-0319-123232.png

https://civitai.com/models/12597/moxin

我喜歡墨心的畫風,於是到下面的Discussion找尋其他人的成品。

2023-0319-123824.png

有些人會分享他們製作這張圖片的參數。我們需要注意的是Model跟Prompt。

Model表示他們用的Checkpoint,我們可以由此選擇要下載的Checkpoint來使用。這張圖用的Checkpoint是dalcefoPainting_3rd,該模型放在Hugging Face底下。

接著我們可以從Prompt找尋要使用的LoRA模型。該圖的Prompt如下:

<lora:Moxin_10:0.35> <lora:Moxin_Shukezouma11:0.35> <lora:koreanDollLikeness_v10:0.3>(ultra high res,photorealistic,realistic,best quality,photo-realistic), (high detailed skin,visible pores),(real person,photograph), (((blue hanfu,chinese style))),realistic,simple background,upper body, (8k, raw photo, best quality, masterpiece),(1 girl),photon mapping, radiosity, physically-based rendering,automatic white balance,(((haunting smile,long hair))),watery eyes, (blush|cute and playful|adorable|skinny|thick bangs|beauty|twintail|hair bun,),(looking at viewer),(irises and pupils are rounded,the pupil reflects the surroundings,eyes are not the same size), chinese street, scenery, morning

請注意<lora:....>類型的標籤,這表示該圖片使用的LoRA比例。從上面可知,該圖片包含的LoRA模型比例如下:

  • <lora:Moxin_10:0.35> 比例是0.35。這是墨心的主要LoRA,可以讓人物看起來有水墨畫的感覺。
  • <lora:Moxin_Shukezouma11:0.35> 比例是0.35。這是墨心的版面配置LoRA,可以讓周圍的畫面更多留白,並加上水墨化常用的背景。
  • <lora:koreanDollLikeness_v10:0.3> 比例是0.3。這是韓國女性的LoRA,不管是真人圖片還是二次元圖片,許多人都會用到這個LoRA。

下載好對應的模型檔案,參考Civat AI大家的設定,你就可以開始你的Stable Diffusion之旅了。


好了魔法師,你會想要召喚什麼英靈呢?

歡迎在下面分享喔。