Last Updated on 2024-07-27 by Clay
什麼是 ComfyUI?
有在玩 Stable Diffusion AI 生圖的人可能都聽過 stable-diffusion-webui,它是一個支援 Stable Diffusion 模型架構的視覺化界面,讓使用者可以不必親自撰寫程式碼或是繁瑣的命令列操作,就可以讓 AI 模型進行生圖的推理。而 ComfyUI 則是另外一個稍微小眾一點的前端界面,不過憑著自由且能靈活客製化的特性,也迅速地收割了一波死忠的粉絲,基本上,可以視為是 stable-diffusion-webui 的更進階版本,也比較沒那麼親民。
不過在我個人實際上手測試後,發現 ComfyUI 的加速推理做得比 stable-diffusion-webui 來得穩定與快速,看似繁瑣的卡片式工作流設計只要熟悉了其實也很方便,於是就沉迷了進去,開始研究一系列的進階操作。
我預計一邊研究,一邊把學習的過程紀錄成筆記。今天主要的目的就是把 ComfyUI 安裝好。
下載與安裝環境
在下載前,請注意以下事項:
- 建議安裝 ComfyUI 的環境必須要有 GPU,Nvidia 家的卡最好,主要是支援度較高的緣故。當然你想用 CPU 計算也可以,不過就真的會很慢
- 需要安裝 Python,才好決定接下來是要開 Python 的虛擬環境還是 Docker,並且我的筆記是以 Linux 的作業系統為主,Windows 的可能就要多少閱讀官方的教學:https://github.com/comfyanonymous/ComfyUI?tab=readme-ov-file#installing
如果你需要從頭安裝 Python,可以參考:[Python] 基本教學 (1) 下載安裝,然後 Hello World !
建立 Python 的虛擬環境,可以參考:[Python] 如何在資料夾中建立 Python 虛擬環境
以下,我們假設你建立好 Python 的虛擬環境了、或是你打算直接安裝在原生系統,我們可以找個想要放置的地方把 ComfyUI 整個專案 clone 下來:
# Clone the GitHub repo
git clone [email protected]:comfyanonymous/ComfyUI.git
# Install the dependencies
cd ComfyUI
pip3 install -r requirements.txt
如果安裝過程都沒有問題,那麼便可以直接打開界面了。
ComfyUI 的使用
python3 main.py --listen --port 22222
Output:
clay@84f05b2d2173:/workspace/ComfyUI$ python3 main.py --listen --port 22222
Total VRAM 7940 MB, total RAM 63994 MB
pytorch version: 2.3.1+cu121
Set vram state to: NORMAL_VRAM
Device: cuda:0 NVIDIA GeForce RTX 4060 Laptop GPU : cudaMallocAsync
Using pytorch cross attention
[Prompt Server] web root: /workspace/ComfyUI/web
Traceback (most recent call last):
File "/workspace/ComfyUI/nodes.py", line 1931, in load_custom_node
module_spec.loader.exec_module(module)
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/workspace/ComfyUI/comfy_extras/nodes_audio.py", line 1, in <module>
import torchaudio
ModuleNotFoundError: No module named 'torchaudio'
Cannot import /workspace/ComfyUI/comfy_extras/nodes_audio.py module for custom nodes: No module named 'torchaudio'
Import times for custom nodes:
0.0 seconds: /workspace/ComfyUI/custom_nodes/websocket_image_save.py
WARNING: some comfy_extras/ nodes did not import correctly. This may be because they are missing some dependencies.
IMPORT FAILED: nodes_audio.py
This issue might be caused by new missing dependencies added the last time you updated ComfyUI.
Please do a: pip install -r requirements.txt
Starting server
To see the GUI go to: http://0.0.0.0:22222
可以看到我仍然有一些音訊的套件沒有安裝被 ComfyUI 偵測了出來,但其實不影響 Stable Diffusion 模型的運作 —— 應該說我也很好奇到底為什麼生成圖片需要我安裝 torchaudio... 不過我們先不管它。
--listen
參數就是將 host 設定在 0.0.0.0,如果沒設定的話服務就是開在 localhost、也就是 127.0.0.1,只能讓本地端的使用者操作。不過如果你是使用遠端伺服器的使用者,那麼只要設定了 --listen
就可以透過 ip 連上自己開的 ComfyUI 服務。
--port
則是設定服務開啟的端口,這裡我習慣設定五位數,也比較不容易與各種服務的預設端口撞到。
總之,如果你看到了 To see the GUI go to: http://0.0.0.0:22222
這樣的敘述,你就可以上瀏覽器去看看ComfyUI 開起來的模樣了。
這是安裝後的預設工作流(workflow),在之後的筆記中會紀錄各種不同的工作方式,不過現在可以先點擊 Queue Prompt,來啟動第一次的生成圖片推理。在推理過程中,進行到每一個環節,該對應的卡片就會亮起來,可以很輕鬆地觀察 Stable Diffusion 架構的運作。
總之,如果看到了圖片生成在最右側的 Save Image 卡片中,那麼恭喜你!目前 ComfyUI 已經安裝成功了!可以開始盡情地測試生成圖片的功能啦。