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:
--lowvramflagini ekleyin, bu modelde model katmanları gerektiğinde RAM’e taşınır--novaeile 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
--fastflagini 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ı.
