在這篇文章中,Ivon將教你Stable Diffusion WebUI的安裝方法,介紹提示詞寫法,並套用至「文生圖」、「圖生圖」、「內補繪製」進行實戰演練。最後再介紹一些擴充功能,還有如何訓練模型。
Stable Diffusion (穩定擴散) 是一個擴散模型,最早由德國CompVis發表並推出相關程式。後來AUTOMATIC1111開發了圖形化界面:「Stable Diffusion WebUI」,成為最多人使用的版本。下面簡稱SD WebUI。
SD WebUI是能用AI技術繪製圖片的開源軟體,只要給定一組描述文字,AI就會畫圖出來;亦能模仿現有的圖片,畫出另一張圖片。甚至給它一部分塗黑的圖片,AI也能按照你的意願將圖片填上適當的內容。除此之外還支援自行訓練模型加強繪製效果。
與其他雲端AI繪圖軟體Midjoruney、NovelAI、DALL-E相比,SD WebUI最大優點是可以免費在自己的電腦或伺服器跑,且只要遵照Creative ML OpenRAIL-M授權條款的話,幾無使用限制。因其開放原始碼的特性,任何人都可以貢獻程式碼,參與改進專案。
SD WebUI支援Linux/Windows/MacOS系統,以及Nvidia/AMD/Apple Silicon M的GPU。其圖形界面是透過網頁存取的,上手無難度,還有社群製作的界面中文化擴充功能。
不過AI繪圖十分吃GPU性能,建議:電腦作業系統Windows 10以上,需配備獨立顯示卡且為Nvidia GTX1050 Ti (VRAM 4GB)以上等級,RAM大於8GB,再來嘗試Stable Diffusion WebUI。
0. 測試環境
本文為Windows系統的安裝過程,Linux參考這篇,macOS參考這篇。
AI繪圖很吃GPU性能,硬體不夠力可考慮用Google Colab雲端跑。
- 作業系統: Windows 11 22H2
- CPU: Intel i5-7400
- GPU: Nvidia GTX1050 Ti 4GB
- RAM: 16GB
- 準備至少10GB的硬碟空間
1. 下載Stable Diffusion的模型
存檔點模型(checkpoint)是AI繪圖的重要依據,檔案普遍在2GB以上所以建議先下載。繪圖用的模型可以一次安裝很多個。
HuggingFace和Civitai有很多類別可以下載,看要畫真人還是動漫風格,至少需要下載一個模型。
點進下載模型的連結,選擇下載副檔名為.ckpt
或.safetensors
的模型。後者因不具備執行程式碼的能力因此較前者安全。
這裡推薦一些Ivon綜合個人以及網路上的意見覺得不錯的模型。
1.1. 寫實風模型
Stable Diffusion v2.1,簡稱SD,是CompVis與合作團隊發表的模型,不斷更新中。網路上很多模型都基於此模型訓練而來。適合畫真人、動物、自然、科技、建築的圖像,亦學習過歷史上許多畫家的畫風。
Chilloutmix寫實風格的模型,適合畫出2.5次元,融合日韓真人與動漫風格的圖像。
Deliberate基於SD-1.5模型,適合繪製精緻寫實風格的人物、動物、自然風景。
Realistic Vision v1.4,寫實風人物模型。
1.2. 動漫風模型
Anything v4.5適合畫動漫圖,作者宣稱不需要打一堆提示詞也能出漂亮的圖。
Waifu Diffusion v1.4是純粹使用Danbooru圖庫訓練而成,適合畫動漫圖。
Hentai Diffusion適合畫動漫圖,模型已使用大量負向提示詞訓練過以排除不良結果,另提供embeddings方便繪圖時使用。
DreamShaper是基於SD-1.5模型,繪製精細動漫人物與油畫風格的模型。
OrangeMix3,混合多種風格的動漫繪圖模型,偏寫實。
2. 安裝Stable Diffusion WebUI
為什麼要使用指令而不使用懶人一鍵安裝包?因為SD WebUI上游原始碼更新很快,還沒有穩定發表版本更新的模式。為此自行設定環境再用Git下載程式是目前最好的方式,自由度高,未來也方便更新。
如果你因為出錯需要整個重裝SD WeBUI的話,已下載的模型(models
資料夾)和擴充功能(extensions
資料夾)可以先備份,不需要重新下載。複製SD WebBUI的儲存庫後再將其放回原處。
2.1. 安裝顯示卡驅動程式
請確認電腦已經安裝最新版的顯示卡驅動程式。
Nvidia顯示卡建議用Geforce Experience安裝最新驅動,會順便安裝CUDA。或者你想手動下載CUDA也行。
AMD請用驅動程式自動偵測工具安裝顯示卡驅動。
2.2. 安裝Git和Python
下載Git版本管理工具。至Git for Windows下載安裝檔,一直下一步即可。
接著安裝Python。SD WebUI限定Python版本需為
3.10.6
。請至Python官網下載Python 3.10.6
的64位元安裝檔。安裝前務必勾選
Add Python 3.10 to PATH
,將Python加到環境變數。再按Install Now
。
(進階) 如果你熟悉Python開發的話,改用Anaconda設定Python虛擬環境會更好。點選展開
Anaconda是針對資料科學打造的Python發行版,能管理一部電腦上的多重Python版本。如果之前已經裝過舊版Python,不需要解除安裝。
如果選擇以Anaconda來安裝Stable Diffusion WebUI的依賴套件,那麼日後就不能用Windows終端機執行webui-user.bat
,而得使用Anaconda Prompt,除非你將conda加入環境變數。
|
|
- 建立Pyhton 3.10.6的虛擬環境
|
|
- 啟動虛擬環境,然後再看下下節設定並啟動
webui-user.bat
,安裝Python依賴套件。
|
|
2.3. 複製Stable Diffusion WebUI儲存庫
開啟檔案總管,在桌面資料夾按右鍵+Shift,點選
在這裡開啟Powershell
或終端機視窗
。如果你C槽空間不足的話,也可以切換到其他硬碟資料夾再開啟終端機。輸入以下指令,檢查目前Python版本,輸出應為3.10.6
|
|
- Nvidia顯示卡用戶輸入以下指令,確認CUDA是否有正確安裝,輸出應含有
nvcc: NVIDIA (R) Cuda compiler driver
|
|
- Nvidia顯卡用戶輸入以下指令,複製Stable Diffusion WebUI的儲存庫。複製完成後保持終端機開著。
|
|
* AMD顯卡用戶請暫時先用這個專門設計給AMD DirectML的分支:
|
|
- 複製完成後,桌面會多出資料夾
stable-diffusion-webui
。將剛剛下載的存檔點模型放到models\Stable-diffusion
資料夾。這個資料夾可放入多個存檔點模型檔。
2.4. 設定啟動引數
顯示卡晶片為Nvidia且VRAM大於8GB的可跳過此步驟。
根據Wiki,有些顯示卡需要修改啟動引數才能正常啟動WebUI。對stable-diffusion-webui
資料夾裡面的webui-user.bat
按右鍵,以記事本開啟,編輯COMMANDLINE_ARGS=
這一行後面的啟動引數。(看不到.bat請點選檔案總管檢視 → 顯示/隱藏 → 顯示副檔名)
若顯示卡VRAM小於等於4GB的話加入COMMANDLINE_ARGS=--medvram --opt-split-attention
引數。
電腦RAM(不是VRAM)小於等於8GB的話改加入COMMANDLINE_ARGS=--lowvram --opt-split-attention
引數。注意使用--lowvram
引數會讓高階顯示卡算圖變很慢。
(下面的不加也可以)
加入--xformers
引數可進一步減少VRAM使用量。--no-half-vae
降低使用VAE時算出黑圖的機率。
加入--listen
引數再開放防火牆7860通訊埠,即可用區域網路其他電腦的瀏覽器存取WebUI。
加入--share
引數則會產生一組Gradio網址,讓你可以從外部網路或手機使用WebUI。網址72小時後過期。
2.5. 啟動Stable Diffusion WebUI
初次啟動會下載好幾GB的資料,請保持網路順暢,不要開VPN。如果你所在的地方有網路審查干擾Github連線,請想辦法找代理繞過。
- 回到終端機,輸入以下指令啟動SD WebUI:
|
|
初次啟動會下載依賴套件,大概要等個30分鐘安裝。如果在此步驟遇到錯誤,請先看常見問題。
啟動完成後會顯示一組網址。執行程式時請勿關閉終端機。
用瀏覽器開啟:
http://127.0.0.1:7860
就可進入圖形界面了。執行程式時請勿關閉終端機,執行時若出錯終端機也會輸出訊息。要關閉SD WebUI,在終端機按Ctrl+C終止,再關閉視窗。
日後要啟動SD WebUI,只要對資料夾裡面的webui-user.bat
按二下即可 (不需要用系統管理員執行)。
2.6. 如何更新Stable Diffusion WebUI
SD WebUI專案原始碼是託管在Github,開發迭代速度很快,建議每週適時更新程式。
但更新頻繁也代表功能容易損壞,因此安全的更新方式如下:
- 在
stable-diffusion-webui
這個資料夾裡面按右鍵+SHIFT開啟終端機,取得目前分支,會印出一組五位數代碼
|
|
- 接著拉取最新分支,更新到最新版檔案。
|
|
如果更新後出現
Merge branch 'master' of
的訊息,請按Esc
鍵,輸入:q!
退出即可。更新後如果有功能壞掉就退回之前的分支版本。
|
|
3. 內建基本功能
講解提示詞(prompt)寫法,以及介紹SD WebUI內建的基本功能:「文生圖」、「圖生圖」、「內補繪製」、LoRA的用法。
請看Stable Diffusion WebUI基本功能使用教學
4. 擴充功能 Extensions
Stable Difussion WebUI的Extensions頁面能安裝擴充功能,在繪圖的時候整合其他AI技術,或是簡化操作。實用的有界面中文化、控制動作的ControlNet、繪製多個人物的Latent Couple,還可以將SD WebUI跟GIMP、Krita修圖軟體串接在一起使用。
請看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 ™
- Stable Diffusion WebUI - 標籤- 萌芽二次元 - 萌芽網頁
- Stable Diffusion - 话题 - 知乎