Files
ubuntu-bare-metal/manual-tutorial/07-comfyui-stack.md
T
tomasz-syn-grzegorza 359afb3a59 Initial import: bare-metal stacks, Server UI, GPU fan, tutorials.
Infrastructure configs for GMKtec K11 (Docker, vLLM, LocalAI, ComfyUI,
control-plane, gpu-fan agent, Server UI with CLI/file explorer/GPU fan curve).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 12:02:04 +00:00

6.6 KiB
Raw Blame History

07 — ComfyUI stack

Cel rozdziału: uruchomić ComfyUI w Dockerze z GPU, web UI na porcie 8188 i pustym katalogiem modeli. Modele dodasz później (checkpoint, LoRA, ComfyUI-Manager).

Szacowany czas:

  • Pobranie obrazu Docker: 1030 minut (pierwszy raz)
  • Pierwszy start (kopia ComfyUI do /data): 310 minut

Wymagania: ukończone rozdziały 0105, mount /data z 04

Kontekst: Zamiast Stability Matrix (GUI desktop) używamy ComfyUI w kontenerze — zgodnie z 03b i researchiem w coding-agent/STABILITYMATRIX-RESEARCH.md.


Spis treści

  1. ComfyUI vs Stability Matrix
  2. Porty i architektura
  3. Polityka GPU (LocalAI ↔ ComfyUI)
  4. Struktura plików stacku
  5. Przygotowanie .env
  6. Instalacja obrazu
  7. Start stacku
  8. Weryfikacja UI
  9. Zarządzanie stackiem
  10. Modele (później)
  11. Troubleshooting
  12. Następny krok

1. ComfyUI vs Stability Matrix

Stability Matrix ComfyUI (stacks/comfyui/)
Typ GUI desktop (AppImage) Docker, headless
Wymaga pulpitu Tak (X11/Wayland) Nie — tylko przeglądarka
ComfyUI Jeden z pakietów SM Bezpośrednio w kontenerze
Zgodność z repo Słaba na SSH-only Tak

SwarmUI (poprzedni UI obrazów) zostało usunięte — patrz SWARMUI-REMOVAL.md.


2. Porty i architektura

flowchart LR
    browser["Przeglądarka :8188"]
    comfyui["Kontener comfyui"]
    gpu["RTX 3090 Ti"]
    disk["/data/apps/comfyui/models"]

    browser --> comfyui
    comfyui --> gpu
    comfyui --> disk
Element Wartość
Obraz yanwk/comfyui-boot:cu126-slim
Web UI http://127.0.0.1:8188 lub http://192.168.100.90:8188 (LAN)
Modele /data/apps/comfyui/models
Docker data /data/docker

3. Polityka GPU (LocalAI ↔ ComfyUI)

RTX 3090 Ti 24 GB — nie uruchamiaj dużego modelu LLM (LocalAI) i dużego checkpointu SD/Flux równocześnie.

Przed startem ComfyUI z generowaniem obrazów:

cd /home/tomasz-syn-grzegorza/cursor/ubuntu-bare-metal/stacks/localai
docker compose --profile localai stop localai

W Server UI (port 8091): Stop/Start stack localai, Start stack comfyui.

Skrypt start.sh ostrzega, gdy localai jest uruchomiony.


4. Struktura plików stacku

stacks/comfyui/
├── README.md
├── docker-compose.yml
├── .env.example
├── .gitignore
└── scripts/
    ├── ensure-dirs.sh
    ├── pull.sh
    └── start.sh

Katalogi na dysku 1 TB:

/data/apps/comfyui/
├── storage/          # kopia ComfyUI (pierwszy start)
├── models/
├── cache/hf-hub/
├── cache/torch-hub/
├── input/
├── output/
├── custom_nodes/
└── workflows/

5. Przygotowanie .env

cd /home/tomasz-syn-grzegorza/cursor/ubuntu-bare-metal/stacks/comfyui
cp .env.example .env
cat .env

Domyślne wartości:

Zmienna Wartość
DATA_ROOT /data
COMFYUI_PORT 8188
COMFYUI_IMAGE yanwk/comfyui-boot:cu126-slim
CUDA_VISIBLE_DEVICES 0

6. Instalacja obrazu

./scripts/pull.sh

Oczekiwany wynik: pobranie warstw yanwk/comfyui-boot:cu126-slim (kilka GB).


7. Start stacku

./scripts/start.sh

Skrypt:

  1. Sprawdza mount /data
  2. Tworzy katalogi (ensure-dirs.sh)
  3. Ostrzega, jeśli localai działa
  4. docker compose --profile comfyui up -d

Pierwszy start kopiuje ComfyUI do /data/apps/comfyui/storage/ — obserwuj logi:

docker compose --profile comfyui logs -f comfyui

8. Weryfikacja UI

docker compose --profile comfyui ps
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8188/

Oczekiwane: kontener healthy lub running, HTTP 200 (może zająć ~3 min przy pierwszym starcie).

W przeglądarce (z sieci lokalnej):

http://192.168.100.90:8188

Tunel SSH z laptopa:

ssh -L 8188:127.0.0.1:8188 tomasz-syn-grzegorza@gmktec-k11
# potem http://localhost:8188

GPU:

nvidia-smi

9. Zarządzanie stackiem

docker compose --profile comfyui ps
docker compose --profile comfyui logs -f comfyui
docker compose --profile comfyui restart comfyui
docker compose --profile comfyui down

Powrót do LocalAI:

cd ../comfyui && docker compose --profile comfyui stop comfyui
cd ../localai && docker compose --profile localai start localai

10. Modele (później)

Compose nie pobiera modeli automatycznie.

Opcje:

  1. ComfyUI-Manager w UI — instalacja węzłów i modeli
  2. Ręcznie — pliki .safetensors / .ckpt do /data/apps/comfyui/models/checkpoints/

Szacunki VRAM (przy zatrzymanym LocalAI):

Model VRAM (orientacyjnie)
SD 1.5 ~46 GB
SDXL ~812 GB
Flux ~1220 GB

11. Troubleshooting

HTTP nie odpowiada / 000

Pierwszy start trwa dłużej — sprawdź logi:

docker compose --profile comfyui logs --tail 80 comfyui

CUDA out of memory

Zatrzymaj LocalAI i inne workloady GPU:

docker ps --format '{{.Names}}'
nvidia-smi

Brak /data

mountpoint /data
# jeśli nie — rozdział 04, część A

Kontener restartuje się w pętli

Sprawdź, czy NVIDIA Container Toolkit działa (rozdział 03):

docker run --rm --gpus all nvidia/cuda:12.6.0-base-ubuntu22.04 nvidia-smi

12. Następny krok

Po przejściu weryfikacji:

  1. Zgłoś w rozmowie z Cursorem, że krok 07 jest gotowy.
  2. Pobierz pierwszy checkpoint (SD 1.5 lub SDXL) — osobny krok.
  3. Później: rozdział 08 — firewall i hardening.

Checklist

  • .env utworzony z .env.example
  • docker compose --profile comfyui pull — obraz pobrany
  • LocalAI zatrzymany przed pierwszym testem generowania (opcjonalnie przy samym starcie UI)
  • ./scripts/start.sh — kontener comfyui running
  • curl http://127.0.0.1:8188/ — HTTP 200
  • UI otwiera się w przeglądarce na :8188
  • Katalogi istnieją pod /data/apps/comfyui/