ComfyUI是一款的Stable Diffusion的網頁界面,用於精準控制AI繪圖的生圖流程。
我認為ComfyUI是訓練邏輯的好東西,看看這精美的流程圖。
ComfyUI的功能類似 Automatic1111的SD WebUI,同樣可以文生圖、載入Lora、圖生圖、內補繪製、放大圖片、訓練模型,以及安裝ControlNet擴充功能,生圖模型可以通用。
本文Ivon將介紹ComfyUI的優點,以及安裝方法,最後面再示範網頁界面的基礎操作方式。
1. ComfyUI的優點#
ComfyUI有何優點?第一個我想就是讓你更清楚AI生圖的原理了吧。
開發者說他是為了解Stable Diffusion的運作原理才開發這個軟體的,主打一個「邏輯」。
如下圖,這是Stable Diffusion技術背後的生圖過程…好吧沒有影片解釋,非本科生應該很難看懂。
ComfyUI概念很像上圖,讓你能更清楚掌握AI生圖的過程。當然ComfyUI沒有那麼複雜,大部分功能都圖形化了。
生圖中間會經過哪些步驟,ComfyUI都會以圖形化的動態方式呈現,讓你一目了然。
ComfyUI的第二個優點:將工作流程(workflow)標準化。ComfyUI以node-based為設計理念,每個生圖步驟都是一個節點(node),使用者能夠觀察和控制AI生圖的過程。
如果你想將Stable Diffusion AI生圖程序標準化,那就可以採用ComfyUI。
用過Blender的話應該會對「節點」(node)的操作有點概念,只要你清楚知道自己在做什麼,你就可以輕鬆的用拉線的方式,規劃AI生圖流程。
比方說你想要:文生圖,再進行外補繪製,再用Real-ESRGAN放大。在SD WebUI你得手動點二次切換界面,而ComfyUI只要線一拉好,整個流程在按開始後就會自動完成。
你甚至可以把ComfyUI的工作流程儲存起來,供他人使用。這樣別人只要開啟你的流程圖,就可以順利跑完生圖。
然而,ComfyUI相對SD WebUI來說沒那麼好上手。建議初學者先用 SD WebUI,摸熟基本AI生圖觀念後,再用ComfyUI會比較順。
2. 安裝ComfyUI#
你需要4GB以上VRAM的顯示卡、8GB以上RAM、20GB的硬碟空間。
Windows#
參考 Github說明,Nvidia顯示卡的用戶,下載 Github Releases的
ComfyUI_windows_portable_nvidia_cu118_or_cpu.7z
檔案,解壓縮將ckpt模型放到程式資料夾下的
ComfyUI\models\checkpoints
。或者你可以設定與SD WebUI 共用模型資料夾(後述)按
run_nvidia_gpu.bat
批次檔,等它裝完依賴套件。維持終端機開啟,再用瀏覽器開啟
http://localhost:8188
,進入網頁界面
Linux#
參考 Github說明手動設定環境。
如果你想把服務容器化,你可以改用 AbdBarho維護的docker-compose部署。
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
將ckpt模型放到
models/checkpoints
安裝依賴套件
conda create --name comfyui python=3.10.6
conda activate comfyui
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
- 啟動程式,用瀏覽器開啟
http://localhost:8188
python main.py
3. 讓ComfyUI與SD WebUI共用模型資料夾#
你可以讓ComfyUI與SD WebUI共用模型資料夾,避免浪費硬碟空間。
將ComfyUI資料夾下的
extra_model_paths.yaml.example
檔案重新命名為extra_model_paths.yaml
,編輯該檔案填入以下內容,與SD WebUI共用模型資料夾:
# 在這裡填入SD WebUI的模型路徑(path)
a111:
# SD WebUI主程式路徑
base_path: "/home/user/stable-diffusion-webui"
# SD WebUI的ckpt模型路徑
checkpoints: models/Stable-diffusion
configs: models/Stable-diffusion
vae: models/VAE
loras: |
models/Lora
models/LyCORIS
upscale_models: |
models/ESRGAN
models/RealESRGAN
models/SwinIR
embeddings: embeddings
hypernetworks: models/hypernetworks
controlnet: models/ControlNet
- 接著,如果你的硬體比較差,那麼可以設定啟動引數減少VRAM佔用。Windows的話編輯
run_nvidia_gpu.bat
,加入--medvram
:
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --medvram
pause
- Linux直接在啟動Python的時候加上引數,或者自行寫個script。
4. ComfyUI基本操作方式#
快捷鍵:網頁點選右鍵新增節點。拖動線條調整節點的連接方式。滑鼠滾輪縮放畫面。
以最簡單的圖生圖來說,我們的圖要這樣拉。
從左到右,每個節點都代表一個「步驟」
最左邊第一個Load Checkpoint,就是選取要使用的ckpt模型
再看連結著CLIP節點的CLIP Text Encode,即是提示詞(prompts)的欄位,在這二個框框填入正向與負向提示詞
下方的Empty Latent Image控制最終生圖的長寬
再往右邊,KSampler就是你要使用的取樣器了,步數(step)我們使用20,採樣器(sampler)使用比較快速的UniPC
最右邊的就是套用VAE,最終產出圖片
要開始跑生圖流程,點選網頁右邊的Queue Prompt
它就會開始跑了…目前跑到哪一步,那個框框就會亮起來。如果生圖卡住,請瞄一下終端機輸出的訊息。
跑完後最右邊的框框就會出現圖片,右鍵存檔
欲儲存目前的工作流程,點選網頁右邊的Save,儲存成json。日後可以用Load還原。
延伸閱讀#
有問題請到 ComfyUI的Github儲存庫回報
ComfyUI開發者準備了一些範例給人參考,內含圖生圖、Lora的配置方式: ComfyUI_examples
社群編輯的ComfyUI參考手冊: ComfyUI Community Manual
Stable Diffusion AI Art的新手操作手冊: Beginner’s Guide to ComfyUI