Hướng dẫn cài đặt ComfyUI để tạo hình ảnh AI trên máy local

Artificial Intelligence tutorial - IT technology blog
Artificial Intelligence tutorial - IT technology blog

Tại sao mình chuyển sang ComfyUI thay vì dùng cloud?

Khoảng 8 tháng trước, mình đang dùng Midjourney và Leonardo AI để tạo ảnh cho blog. Chi phí không lớn, nhưng cái khó chịu nhất: mỗi khi cần ảnh theo phong cách đặc thù — minh họa command line, terminal screenshot giả lập — thì không tool cloud nào làm được đúng ý.

Sau khi thử ComfyUI trên máy local, mình nhận ra đây là thứ mình cần từ lâu. Không phải vì nó miễn phí (dù đó là điểm cộng), mà vì toàn quyền kiểm soát workflow: chọn model, tuỳ chỉnh sampler, chain nhiều bước với nhau — tất cả visualize dưới dạng node graph.

Learning curve của ComfyUI khá dốc nếu bạn mới tiếp xúc với Stable Diffusion. Nhưng sau 1-2 ngày quen tay, nó vượt xa AUTOMATIC1111 về độ linh hoạt. Bài này là đúng những gì mình đã làm — không thêm không bớt.

Yêu cầu phần cứng và phần mềm

Setup tối thiểu để ComfyUI chạy được — và cấu hình thực tế mình đang dùng để tham khảo:

  • GPU NVIDIA: Tối thiểu 4GB VRAM (khuyến nghị 8GB+). Mình dùng RTX 3060 12GB, chạy rất mượt.
  • RAM: 16GB trở lên. Một số model lớn cần swap nếu RAM thấp.
  • Ổ cứng: Dành ít nhất 20GB cho model. Checkpoints thường 2–7GB mỗi file.
  • Python: 3.10 hoặc 3.11. Tránh 3.12 vì một số dependency chưa tương thích hoàn toàn.
  • Git: Để clone repo và cập nhật.

Không có GPU NVIDIA? Vẫn chạy được bằng CPU hoặc AMD (ROCm), nhưng tốc độ chênh lệch rõ — 5–10 phút/ảnh thay vì 10–30 giây trên GPU.

Cài đặt ComfyUI

Bước 1: Clone repository

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI

Bước 2: Tạo virtual environment và cài dependencies

# Tạo venv
python -m venv venv

# Kích hoạt (Linux/macOS)
source venv/bin/activate

# Kích hoạt (Windows PowerShell)
.\venv\Scripts\Activate.ps1

# Cài PyTorch với CUDA support (NVIDIA GPU)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# Cài các dependencies còn lại
pip install -r requirements.txt

Lưu ý: phiên bản CUDA trong URL (cu121) phải khớp với CUDA toolkit đang cài. Kiểm tra bằng nvidia-smi — xem cột CUDA Version ở góc phải trên.

# Kiểm tra CUDA version
nvidia-smi

# Nếu CUDA 12.4 thì dùng cu124
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

Bước 3: Tải model Stable Diffusion

ComfyUI không đi kèm model — bạn tự tải từ Hugging Face hoặc CivitAI. Để bắt đầu: chọn SDXL Base 1.0 nếu cần chất lượng cao, Realistic Vision nếu muốn ảnh chân thực.

# Tạo thư mục chứa model
mkdir -p models/checkpoints
mkdir -p models/vae
mkdir -p models/loras

# Tải model từ Hugging Face (ví dụ SDXL)
# Bạn cần token HuggingFace nếu download model gated
wget -P models/checkpoints/ https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors

Dùng huggingface-cli để quản lý model tiện hơn — đặc biệt khi cần tải nhiều file cùng lúc:

pip install huggingface_hub
huggingface-cli login  # nhập token từ https://huggingface.co/settings/tokens

# Download model cụ thể
huggingface-cli download stabilityai/stable-diffusion-xl-base-1.0 \
  sd_xl_base_1.0.safetensors \
  --local-dir models/checkpoints/

Bước 4: Khởi động ComfyUI

python main.py

Output sẽ có dạng:

Starting server
To see the GUI go to: http://127.0.0.1:8188

Mở trình duyệt tới http://127.0.0.1:8188 — giao diện node graph của ComfyUI sẽ hiện ra.

Cấu hình chi tiết

Cấu hình extra_model_paths.yaml

Đang dùng AUTOMATIC1111 và có sẵn model rồi? Không cần copy lại — chỉ trỏ đường dẫn là xong:

# extra_model_paths.yaml (tạo ở thư mục gốc ComfyUI)
a1111:
  base_path: /home/username/stable-diffusion-webui/
  checkpoints: models/Stable-diffusion
  loras: models/Lora
  vae: models/VAE
  embeddings: embeddings

Chạy với các tham số hữu ích

# Cho phép truy cập từ mạng nội bộ (ví dụ từ laptop khác)
python main.py --listen 0.0.0.0

# Giảm VRAM usage nếu máy ít bộ nhớ GPU
python main.py --lowvram

# Dùng CPU (không có GPU hoặc để test)
python main.py --cpu

# Tự động mở browser
python main.py --auto-launch

# Chạy trên port khác
python main.py --port 8080

Trên server mình, ComfyUI chạy với flag --listen 0.0.0.0 và có nginx reverse proxy phía trước — truy cập từ xa qua HTTPS, ổn định khoảng 6 tháng nay chưa gặp vấn đề gì. Một điểm cần nhớ: ComfyUI không có authentication mặc định. Phải đặt basic auth hoặc IP whitelist ở phía nginx, không thì ai cũng có thể generate ảnh trên máy bạn.

Cài đặt ComfyUI Manager (bắt buộc)

ComfyUI Manager là extension quản lý custom nodes — gần như không thể thiếu nếu bạn muốn dùng các workflow phức tạp:

cd custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
cd ..

# Restart ComfyUI
python main.py

Sau khi cài, nút Manager sẽ xuất hiện ở góc phải giao diện. Từ đây bạn install/update custom nodes, model, và missing dependencies chỉ vài click.

Workflow cơ bản: Text to Image

ComfyUI đi kèm default workflow. Các node quan trọng cần hiểu:

  • Load Checkpoint: chọn model (.safetensors)
  • CLIP Text Encode: nhập positive và negative prompt
  • KSampler: điều chỉnh steps, CFG scale, sampler (euler, dpm++ 2m, …)
  • VAE Decode: convert latent space về ảnh thực
  • Save Image: lưu output

Setting mình hay chọn: DPM++ 2M Karras, 25 steps, CFG 7.0. Trên RTX 3060 12GB, một ảnh 1024×1024 xong trong khoảng 18–22 giây — đủ nhanh để iterate liên tục.

Kiểm tra và Monitoring

Kiểm tra GPU đang được dùng hay không

# Terminal 1: chạy ComfyUI
python main.py

# Terminal 2: xem GPU usage realtime
watch -n 1 nvidia-smi

Khi đang generate ảnh, cột GPU-Util phải lên 80–100%. Nếu chỉ thấy 0–5%, ComfyUI đang fallback sang CPU — kiểm tra lại CUDA installation.

Kiểm tra Python environment

import torch
print(torch.__version__)          # Xem version
print(torch.cuda.is_available())  # Phải là True
print(torch.cuda.get_device_name(0))  # Tên GPU của bạn

Log và debug

ComfyUI log thẳng ra terminal. Để lưu lại:

python main.py 2>&1 | tee comfyui.log

Các lỗi hay gặp và cách xử lý:

  • CUDA out of memory: thêm --lowvram hoặc giảm resolution xuống 512×512 trước.
  • Module not found: chạy lại pip install -r requirements.txt trong venv đang active.
  • Model không hiện trong dropdown: kiểm tra đường dẫn file trong models/checkpoints/, refresh browser, hoặc restart ComfyUI.
  • Workflow báo missing nodes: mở ComfyUI Manager → Install Missing Custom Nodes.

Tự động restart với systemd (Linux)

Chạy ComfyUI trên VPS hoặc máy Linux 24/7? Tạo systemd service để nó tự restart khi crash:

# /etc/systemd/system/comfyui.service
[Unit]
Description=ComfyUI Stable Diffusion
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/ComfyUI
ExecStart=/home/ubuntu/ComfyUI/venv/bin/python main.py --listen 0.0.0.0
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable comfyui
sudo systemctl start comfyui
sudo systemctl status comfyui

Một vài tips sau 8 tháng dùng thực tế

  • Lưu workflow dưới dạng JSON (Save trong menu) trước khi thay đổi lớn — rollback rất dễ.
  • Cài ControlNet qua Manager nếu cần control pose hoặc composition chính xác.
  • SDXL Turbo và FLUX.1 schnell cho ảnh nhanh hơn nhiều (4–8 steps thay vì 25+) — phù hợp khi cần iterate nhanh trên máy yếu.
  • Thư mục output/ tích lũy ảnh rất nhanh — sau 1 tháng dùng, mình đã có hơn 3GB ảnh. Đặt cron job dọn định kỳ cho đỡ.
  • API endpoint http://localhost:8188/prompt nhận job qua POST — có thể gọi từ script Python để chạy batch generation tự động, không cần mở browser.

Share: