ComfyUI Kurulumu ve Node Tabanlı İş Akışı Oluşturma

Stable Diffusion dünyasına giriş yapanların büyük çoğunluğu önce AUTOMATIC1111 WebUI ile tanışır. Sade arayüzü, geniş eklenti ekosistemi ile bu araç uzun süre standart haline geldi. Ancak iş akışları karmaşıklaştıkça, özellikle ControlNet zincirleri, LoRA katmanları ve çoklu model geçişleri gibi senaryolarda AUTOMATIC1111’in lineer yapısı bir noktada yetersiz kalmaya başlıyor. İşte tam bu noktada ComfyUI devreye giriyor. Node tabanlı, görsel programlama mantığıyla çalışan bu araç, sysadmin perspektifinden bakıldığında “pipeline as code” yaklaşımının GUI versiyonu gibi düşünülebilir. Her şey açık, her bağlantı görünür, her adım izlenebilir.

ComfyUI Nedir ve Neden Tercih Edilmeli

ComfyUI, Stable Diffusion modellerini çalıştırmak için tasarlanmış, node (düğüm) tabanlı bir arayüzdür. Geleneksel WebUI araçlarından temel farkı, görüntü üretim sürecinin her adımının ayrı bir node olarak temsil edilmesi ve bu node’ların birbirine kablolarla bağlanmasıdır. Bu yaklaşım şu avantajları beraberinde getirir:

  • Şeffaflık: Her pipeline adımı görünürdür, gizli sihir yoktur
  • Modülerlik: İstediğiniz adımı kolayca değiştirebilir veya bypass edebilirsiniz
  • Tekrarlanabilirlik: Workflow’ları JSON olarak kaydedip paylaşabilirsiniz
  • Bellek verimliliği: Sadece ihtiyaç duyulan bileşenler yüklenir
  • Otomasyon dostu: API üzerinden headless modda çalıştırılabilir

Sistem yöneticileri için önemli bir not: ComfyUI’nin bellek yönetimi AUTOMATIC1111’e kıyasla çok daha verimlidir. Aynı modeli çalıştırırken yaklaşık yüzde 20-30 daha az VRAM kullanımı gözlemlenebilir.

Sistem Gereksinimleri

ComfyUI’yi production benzeri bir ortamda kurmadan önce donanım ve yazılım gereksinimlerini netleştirmek gerekiyor.

Donanım gereksinimleri:

  • GPU (önerilen): NVIDIA ekran kartı, minimum 4GB VRAM (SDXL için 8GB+)
  • RAM: Minimum 16GB sistem RAM, önerilen 32GB
  • Depolama: Model dosyaları için en az 50GB boş alan (SSD şiddetle önerilir)
  • CPU: AMD/Intel fark etmez, ancak CPU modunda çalışma çok yavaştır

Yazılım gereksinimleri:

  • Python 3.10 veya 3.11 (3.12 bazı bağımlılıklarla sorun çıkarabilir)
  • Git
  • CUDA Toolkit 11.8 veya 12.1 (NVIDIA GPU için)
  • pip veya conda paket yöneticisi

Linux Üzerinde Kurulum

Ubuntu 22.04 LTS baz alarak anlatacağım, ancak adımlar diğer dağıtımlarda da benzerdir.

CUDA ve Sürücü Kontrolü

# NVIDIA sürücü versiyonunu kontrol et
nvidia-smi

# CUDA versiyonunu öğren
nvcc --version

# Eğer CUDA kurulu değilse
sudo apt update
sudo apt install -y nvidia-cuda-toolkit

Python Ortamı Hazırlama

Sistem Python’unu kirletmemek için her zaman sanal ortam kullanın. Ben conda yerine venv tercih ediyorum, daha hafif ve yeterli.

# Python versiyonunu kontrol et
python3 --version

# Gerekli araçları yükle
sudo apt install -y python3.11 python3.11-venv python3.11-dev git

# ComfyUI için ana dizini oluştur
mkdir -p /opt/comfyui
cd /opt/comfyui

# ComfyUI reposunu klonla
git clone https://github.com/comfyanonymous/ComfyUI.git .

# Sanal ortam oluştur
python3.11 -m venv venv

# Sanal ortamı aktifleştir
source venv/bin/activate

Bağımlılıkların Kurulumu

# PyTorch kurulumu - CUDA 12.1 için
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# Alternatif: CUDA 11.8 için
# pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# ComfyUI bağımlılıkları
pip install -r requirements.txt

# Kurulumu doğrula
python -c "import torch; print(torch.cuda.is_available())"

Çıktı True dönüyorsa GPU başarıyla tanınmış demektir. False dönüyorsa CUDA kurulumunu ve sürücü versiyonlarını tekrar gözden geçirin.

İlk Çalıştırma

# Temel parametrelerle başlat
python main.py --listen 0.0.0.0 --port 8188

# Düşük VRAM mod (4-6GB GPU için)
python main.py --listen 0.0.0.0 --port 8188 --lowvram

# CPU modunda çalıştırma (son çare)
python main.py --listen 0.0.0.0 --port 8188 --cpu

Tarayıcıdan http://sunucu-ip:8188 adresine gittiğinizde arayüzü göreceksiniz. Ancak henüz model yok, önce model indirmemiz gerekiyor.

Model Dosyalarının Yerleştirilmesi

ComfyUI’de dosya yapısı oldukça düzenlidir. Her model türü kendi klasörüne gider:

# Klasör yapısına göz at
ls /opt/comfyui/models/

# Checkpoints - ana model dosyaları (.safetensors veya .ckpt)
ls /opt/comfyui/models/checkpoints/

# VAE modelleri
ls /opt/comfyui/models/vae/

# LoRA dosyaları
ls /opt/comfyui/models/loras/

# ControlNet modelleri
ls /opt/comfyui/models/controlnet/

# Örnek model indirme (wget ile)
cd /opt/comfyui/models/checkpoints/
wget -c "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors"

Hugging Face CLI ile model indirmek çok daha pratik oluyor, özellikle büyük model koleksiyonları için:

# HuggingFace CLI kurulumu
pip install huggingface_hub

# Model indirme
huggingface-cli download 
  stabilityai/stable-diffusion-xl-base-1.0 
  sd_xl_base_1.0.safetensors 
  --local-dir /opt/comfyui/models/checkpoints/

Systemd Service Olarak Yapılandırma

Sunucu ortamında ComfyUI’yi her zaman açık tutmak için systemd servis dosyası oluşturalım:

# Servis dosyasını oluştur
sudo nano /etc/systemd/system/comfyui.service
[Unit]
Description=ComfyUI Stable Diffusion WebUI
After=network.target

[Service]
Type=simple
User=comfyui
Group=comfyui
WorkingDirectory=/opt/comfyui
Environment="PATH=/opt/comfyui/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
ExecStart=/opt/comfyui/venv/bin/python main.py 
  --listen 127.0.0.1 
  --port 8188 
  --highvram
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
# Servisi etkinleştir ve başlat
sudo systemctl daemon-reload
sudo systemctl enable comfyui
sudo systemctl start comfyui

# Durumu kontrol et
sudo systemctl status comfyui

# Logları takip et
sudo journalctl -u comfyui -f

Windows Üzerinde Kurulum

Windows kullanıcıları için resmi portable paketi en kolay yoldur, ancak manuel kurulum daha fazla kontrol sağlar.

# Git Bash veya PowerShell üzerinden
git clone https://github.com/comfyanonymous/ComfyUI.git C:ComfyUI
cd C:ComfyUI

# Python 3.11 kurulu olduğunu varsayarak
python -m venv venv
venvScriptsactivate

# PyTorch - CUDA 12.1
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

pip install -r requirements.txt

# Başlatma
python main.py --listen 0.0.0.0 --port 8188

Node Tabanlı İş Akışı Mantığı

ComfyUI’ye giriş yaptığınızda ilk başta karmaşık görünen bu arayüz aslında çok mantıklı bir düzene sahip. Ekrana sağ tıkladığınızda node ekleme menüsü açılır. Her node belirli bir işlemi temsil eder ve node’ların çıktıları diğer node’ların girdilerine bağlanır.

Temel node türleri:

  • Load Checkpoint: Model dosyasını yükler, MODEL, CLIP ve VAE çıktıları üretir
  • CLIP Text Encode: Metin prompt’larını model için encode eder
  • KSampler: Asıl görüntü üretiminin gerçekleştiği node
  • VAE Decode: Latent uzayındaki veriyi piksel uzayına dönüştürür
  • Save Image: Sonucu diske kaydeder
  • Empty Latent Image: Boş bir latent canvas oluşturur, boyut buradan belirlenir

Temel Text-to-Image Workflow

Default workflow aslında en sade haliyle şu node zincirinden oluşur:

Load Checkpoint -> MODEL, CLIP, VAE çıktıları üretir

CLIP Text Encode (Positive) -> CLIP girdi alır, CONDITIONING üretir

CLIP Text Encode (Negative) -> CLIP girdi alır, CONDITIONING üretir

Empty Latent Image -> LATENT üretir (512×512, batch_size:1)

KSampler -> MODEL + positive CONDITIONING + negative CONDITIONING + LATENT alır, LATENT üretir

VAE Decode -> VAE + LATENT alır, IMAGE üretir

Save Image -> IMAGE alır, diske kaydeder

Bu zinciri JSON olarak dışa aktarıp paylaşabilirsiniz. Bir ekip ortamında çalışıyorsanız bu workflow dosyalarını Git reposunda tutmak mükemmel bir pratik.

ControlNet Workflow Örneği

ControlNet, mevcut bir görüntünün yapısını referans alarak yeni görüntü üretmenizi sağlar. Pose detection, depth map, canny edge gibi preprocessor’lar kullanılır. Bu iş akışında node sayısı artmaya başlar:

  • Load Image node’u ile referans görüntüyü yükleyin
  • ControlNet Preprocessor (örneğin Canny) ile edge map oluşturun
  • Load ControlNet Model ile ControlNet ağırlıklarını yükleyin
  • Apply ControlNet node’u ile ControlNet koşullandırmasını uygulayın
  • KSampler’a bağlayın

Bu noktada ComfyUI’nin gücü ortaya çıkıyor. Aynı workflow’a birden fazla ControlNet ekleyebilir, her birine farklı ağırlık verebilir, hangi adımlarda devreye girip çıkacaklarını ayarlayabilirsiniz.

Custom Node Kurulumu

ComfyUI’nin ekosistemi büyük ölçüde custom node’larla genişletilir. ComfyUI-Manager bu sürecin en önemli aracıdır.

# ComfyUI-Manager kurulumu
cd /opt/comfyui/custom_nodes/
git clone https://github.com/ltdrdata/ComfyUI-Manager.git

# ComfyUI'yi yeniden başlat
sudo systemctl restart comfyui

ComfyUI-Manager yüklendikten sonra arayüzde bir “Manager” butonu belirir. Buradan popüler custom node paketlerini tek tıkla kurabilirsiniz. Sysadmin olarak önereceğim temel paketler:

  • WAS Node Suite: Görüntü işleme, dosya operasyonları, metin manipülasyonu
  • ComfyUI-Impact-Pack: Yüz detaylandırma, segment anything entegrasyonu
  • efficiency-nodes-comfyui: KSampler’ın gelişmiş versiyonları, tek node’da çoklu işlem
  • ComfyUI_IPAdapter_plus: Image Prompt Adapter, referans görüntüden stil aktarımı
  • ComfyUI-AnimateDiff-Evolved: Video/animasyon üretimi

Manuel kurulum yapmak isterseniz:

# Custom node kurulumu (örnek)
cd /opt/comfyui/custom_nodes/
git clone https://github.com/WASasquatch/was-node-suite-comfyui.git

# Eğer node'un kendi requirements.txt varsa
cd was-node-suite-comfyui
source /opt/comfyui/venv/bin/activate
pip install -r requirements.txt

API Üzerinden Otomasyon

ComfyUI’nin en değerli özelliklerinden biri tam teşekküllü REST API sunmasıdır. Bir workflow’u kaydettiğinizde JSON formatında alırsınız ve bu JSON’u API’ye POST ederek headless modda görüntü üretimi yapabilirsiniz. Cron job’lar, CI/CD pipeline’ları veya kendi uygulamalarınızla entegrasyon için biçilmiş kaftan.

# Basit bir API test isteği
curl -s http://localhost:8188/system_stats | python3 -m json.tool

# Queue durumunu kontrol et
curl -s http://localhost:8188/queue | python3 -m json.tool

# Workflow API formatında kaydetmek için arayüzde
# Settings > Export (API format) seçeneğini kullanın

Python ile workflow gönderme örneği:

# Python script ile görüntü üretimi tetikleme
python3 << 'EOF'
import json
import urllib.request

# Workflow JSON'unu oku (API formatında kaydedilmiş olmalı)
with open("workflow_api.json", "r") as f:
    workflow = json.load(f)

# Prompt'u dinamik olarak değiştir
# Node ID'leri workflow'unuza göre değişir
workflow["6"]["inputs"]["text"] = "a beautiful mountain landscape, photorealistic"

# API'ye gönder
data = json.dumps({"prompt": workflow}).encode("utf-8")
req = urllib.request.Request("http://localhost:8188/prompt", data=data)
req.add_header("Content-Type", "application/json")

response = urllib.request.urlopen(req)
result = json.loads(response.read())
print(f"Job ID: {result['prompt_id']}")
EOF

Nginx Reverse Proxy Yapılandırması

ComfyUI’yi doğrudan 8188 portu üzerinden dışarıya açmak yerine Nginx arkasında çalıştırmak hem güvenli hem de pratiktir. WebSocket desteği de şart çünkü ComfyUI gerçek zamanlı ilerleme güncellemeleri için WebSocket kullanıyor.

# Nginx config
sudo nano /etc/nginx/sites-available/comfyui
server {
    listen 80;
    server_name comfyui.ornekdomain.com;

    client_max_body_size 50M;

    location / {
        proxy_pass http://127.0.0.1:8188;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # WebSocket desteği
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }
}
# Konfigürasyonu etkinleştir
sudo ln -s /etc/nginx/sites-available/comfyui /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

# SSL için Certbot
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d comfyui.ornekdomain.com

Performans Optimizasyonu ve İpuçları

Günlük kullanımda karşılaşılan durumlar ve çözümleri:

VRAM yetersizliği sorunları için:

  • --lowvram flagini ekleyin, bu modelde model katmanları gerektiğinde RAM’e taşınır
  • --novae ile VAE’yi CPU’da çalıştırın, VRAM tasarrufu sağlar
  • Tile VAE tekniğini kullanan workflow’lar yüksek çözünürlüklü görüntüler için VRAM kullanımını önemli ölçüde azaltır

Model yükleme süresini kısaltmak için:

  • Modelleri SSD’de tutun, HDD ile model yükleme süreleri 3-5 kat uzayabilir
  • --fast flagini deneyin (bazı durumlarda hafif kalite kaybı olabilir)
  • Sık kullandığınız modeli önbellekte tutmak için workflow’lar arası geçişte aynı checkpoint’i kullanmaya özen gösterin

Çoklu GPU kurulumu:

# Belirli bir GPU'yu seçmek için
CUDA_VISIBLE_DEVICES=0 python main.py --port 8188
CUDA_VISIBLE_DEVICES=1 python main.py --port 8189

Sonuç

ComfyUI, Stable Diffusion ekosisteminde bir paradigma değişimini temsil ediyor. Arayüz karmaşık görünse de node tabanlı yaklaşım bir kez kavrandığında geri dönmek istemiyorsunuz. Bir sysadmin olarak özellikle takdir ettiğim şeyler şunlar: her şeyin JSON ile ifade edilebilmesi, API üzerinden tam otomasyon desteği, bellek yönetimindeki verimlilik ve custom node ekosisteminin genişliği.

Kurulum sürecinde en çok vakit alan kısım genellikle CUDA uyumluluk sorunlarıdır. PyTorch versiyonu, CUDA toolkit versiyonu ve NVIDIA sürücü versiyonu üçlüsünün uyumlu olmasına dikkat edin; bu üçü hizalandığında kurulumun geri kalanı çoğunlukla sorunsuz ilerler.

Workflow geliştirme konusunda tavsiyem şu: default workflow’dan başlayın, her node’un ne yaptığını anladığınızdan emin olun, sonra yavaş yavaş karmaşıklık ekleyin. Topluluk paylaştığı workflow’ları olduğu gibi kullanmak yerine içini anlayarak kullanmak uzun vadede çok daha faydalı oluyor. ComfyUI’nin GitHub reposu ve resmi Discord kanalı her iki durumda da iyi birer başlangıç noktası.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir