# ComfyUI Sunucu Rehberi: API, Çoklu GPU, VRAM ve Güvenlik

- Adres: https://gpukiralama.com.tr/blog/comfyui-workflow-gpu-rehberi/
- Kategori: Teknik
- Yayın: 2026-10-24 · Son güncelleme: 2026-10-28

ComfyUI'yi bir GPU sunucusunda kalıcı servis olarak çalıştırmak için sürümü sabitleyin (Ekim 2026'da v0.42.1), her GPU'ya ayrı port ve systemd servisi verin, sunucuyu yalnızca 127.0.0.1'de dinletip önüne parolalı nginx ya da SSH tüneli koyun. API için iş akışını Export Workflow (API) ile dışa aktarıp POST /prompt'a gönderin, bitişi /ws ile bekleyin.

## Kısa cevap

ComfyUI'yi bir GPU sunucusunda kalıcı bir servis olarak çalıştırmak dört adımdan oluşur: sürümü sabitlenmiş bir kurulum, her GPU için ayrı bir systemd servisi, yalnızca 127.0.0.1'i dinleyip önüne parola korumalı bir ters vekil (reverse proxy) konan bir sunucu ve iş akışlarını API biçiminde `/prompt` uç noktasına gönderen bir otomasyon. Güncel kararlı sürüm, 19 Ekim 2026'da yayımlanan v0.42.1'dir.

- **Ölçek:** Bir ComfyUI süreci işleri sırayla, birer birer çalıştırır. 8 GPU'lu bir sunucuda 8 ayrı süreç açın; tek bir işi birden çok karta bölmek için çekirdekteki çoklu GPU düğümlerini kullanın.
- **Bellek:** NVIDIA kartlarda ve PyTorch 2.8 ve üzeriyle ComfyUI VRAM'i kendisi yönetir; `--lowvram` ya da `--highvram` gibi bayrakları yalnızca belirli bir sorun için ekleyin.
- **Güvenlik:** ComfyUI'de varsayılan olarak kimlik doğrulama yoktur; arayüzü doğrudan internete açmayın.
- **Tekrarlanabilirlik:** ComfyUI sürümünü, özel düğüm listesini ve iş akışı JSON'larını birlikte saklayın.

Temel kurulum ve model başına bellek ihtiyacı için [Stable Diffusion ve FLUX rehberimize](/blog/stable-diffusion-gpu-rehberi/) bakın; bu yazı oradan devam ediyor.

## ComfyUI sunucuya nasıl kurulur?

Kodu, modelleri ve çıktıları ayrı klasörlerde tutun ve ComfyUI'yi bir sürüm etiketine sabitleyin. Proje yaklaşık iki haftada bir kararlı sürüm yayımlıyor ve sürüm etiketleri dışındaki commit'lerin özel düğümleri bozabileceğini açıkça belirtiyor.

```bash
git clone https://github.com/Comfy-Org/ComfyUI.git /opt/ComfyUI
cd /opt/ComfyUI
git checkout v0.42.1
python3 -m venv .venv && source .venv/bin/activate
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txt -r manager_requirements.txt
```

Güncellerken yeni etikete geçtikten sonra son `pip install` komutunu yeniden çalıştırın; arayüz paketi ve Manager sürümü bu iki dosyada sabitlenmiştir. Sürücü ve CUDA ayrıntıları [PyTorch GPU kurulum rehberimizde](/blog/pytorch-gpu-kurulum-rehberi/). ComfyUI'nin resmi bir Docker imajı yok; konteyner tercih ederseniz [Docker GPU rehberimize](/blog/docker-gpu-kullanim-rehberi/) bakın.

## Modeller nerede durmalı?

Modelleri ComfyUI klasörünün dışında tutun ve `extra_model_paths.yaml` ile gösterin. Böylece ComfyUI'yi yeniden kursanız da onlarca GB'lık dosyaları yeniden indirmezsiniz. ComfyUI bu dosyayı kök klasörden açılışta okur:

```yaml
modeller:
  base_path: /srv/models/
  is_default: true
  checkpoints: checkpoints/
  diffusion_models: diffusion_models/
  text_encoders: text_encoders/
  vae: vae/
  loras: loras/
```

`is_default: true` satırı bu klasörleri öncelikli yapar; ComfyUI-Manager indirdiği modelleri buraya koyar.

## Özel düğümler (custom nodes) nasıl yönetilir?

ComfyUI-Manager ile kurun, kurulu durumu anlık görüntüyle (snapshot) kaydedin ve üretim sunucusunda kurulum yetkisini kısıtlayın. Manager artık ayrı bir pip paketi; çekirdek, uyumlu sürümü `manager_requirements.txt` içinde sabitliyor (Ekim 2026'da 4.2.2). Etkinleştirmek için ComfyUI'yi `--enable-manager` ile başlatırsınız.

- **Kaynağa dikkat:** ComfyUI belgeleri, kötü niyetli düğümlerin sistemi ele geçirebileceği konusunda uyarıyor. Yalnızca bilinen ve yaygın kullanılan düğümleri kurun.
- **Anlık görüntü:** Kurulu düğümleri commit numaralarıyla kaydedin; bozulan bir güncellemeden sonra `cm-cli restore-snapshot` ile geri dönersiniz.
- **Yetki:** ComfyUI 127.0.0.1'i dinlediğinde Manager onu yerel sayar; ters vekilden geçen herkes Manager'ı kullanabilir. Varsayılan `normal` seviyesinde kayıtlı düğüm paketleri kurulabildiği için üretimde `user/__manager/config.ini` dosyasında `security_level = strong` kullanın.

Anlık görüntüyü komut satırından, ComfyUI'nin sanal ortamı etkinken şöyle alırsınız:

```bash
COMFYUI_PATH=/opt/ComfyUI cm-cli save-snapshot --output /srv/comfy/snapshot-2026-10.json
```

## ComfyUI birden fazla GPU ile nasıl çalıştırılır?

En basit yol, her GPU için `CUDA_VISIBLE_DEVICES` ve ayrı bir portla ayrı bir ComfyUI süreci açmaktır; bağımsız işler böylece paralel çalışır. systemd şablon birimi bunu tek dosyayla yapar. `/etc/systemd/system/comfyui@.service`:

```ini
[Unit]
Description=ComfyUI GPU %i
After=network-online.target
Wants=network-online.target

[Service]
User=comfy
WorkingDirectory=/opt/ComfyUI
Environment=CUDA_VISIBLE_DEVICES=%i
ExecStart=/opt/ComfyUI/.venv/bin/python main.py --listen 127.0.0.1 --port 818%i --temp-directory /srv/comfy/gpu%i --output-directory /srv/comfy/gpu%i/output
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

```bash
sudo systemctl daemon-reload
sudo systemctl enable --now comfyui@0 comfyui@1
journalctl -u comfyui@0 -f
```

Servis `comfy` adlı ayrı bir sistem kullanıcısıyla çalışır; `/opt/ComfyUI` ve `/srv/comfy` bu kullanıcıya ait olmalı. GPU 0 8180, GPU 1 8181 portunda çalışır. Süreçler birbirinden bağımsız çalıştığı için kartlar arasında NVLink gerekmez; NVLink'in ne zaman işe yaradığını [NVLink rehberimizde](/blog/multi-gpu-nvlink-kiralama-rehberi/) anlattık. ComfyUI açılışta geçici klasörünü sildiği için her sürece ayrı `--temp-directory` vermek önemlidir. `--cuda-device 0` bayrağı da aynı işi görür.

RTX PRO 6000'i MIG ile her biri 24 GB olan dört parçaya bölebilirsiniz. `nvidia-smi -L` çıktısındaki `MIG-…` kimliğini `CUDA_VISIBLE_DEVICES`'a yazarak her parçada ayrı bir servis çalıştırırsınız. Tek bir işi birden çok karta yaymak için çekirdekte (v0.42.1) dört düğüm var: **MultiGPU CFG Split** örnekleme (sampling) işini sürecin gördüğü GPU'lara böler; **Select Model Device**, **Select CLIP Device** ve **Select VAE Device** ise difüzyon modelini, metin kodlayıcıyı ve VAE'yi ayrı kartlara yerleştirir. Bu düğümler için süreç birden çok GPU'yu görmelidir; yukarıdaki servis her sürece tek GPU verdiğinden bu iş akışlarını ayrı bir süreçte, örneğin `--cuda-device 0,1 --port 8190` ile çalıştırın. Hızlanma modele ve iş akışına göre değişir; kendi iş akışınızla ölçün. Bağımsız işler için ise ayrı süreçler daha basit ve öngörülebilirdir.

## ComfyUI VRAM ayarları: lowvram ve highvram ne zaman gerekir?

Çoğu zaman gerekmez. Ekim 2026 itibarıyla ComfyUI, NVIDIA kartlarda ve PyTorch 2.8 ve üzeriyle belleği "dynamic VRAM" ile kendisi yönetir; `--highvram`, `--gpu-only` ve `--novram` bu modu kapatır. Bayrakları belirli bir sorunu çözmek için ekleyin:

| Bayrak | Ne yapar | Ne zaman |
|---|---|---|
| `--highvram` | Modelleri iş bitince GPU'da tutar (dynamic VRAM'ı kapatır) | Tek model ailesi, bol bellek, art arda işler |
| `--gpu-only` | Metin kodlayıcılar dahil her şeyi GPU'da tutar (dynamic VRAM'ı kapatır) | 96 GB'lık kartta yükleme beklemesini azaltmak |
| `--reserve-vram 4` | 4 GB'ı diğer yazılımlara bırakır | Aynı GPU'da başka bir süreç varsa |
| `--vram-headroom 4` | Dynamic VRAM'ın, diğer uygulamaların kullandığı belleği de sayarak 4 GB'ı boş tutmasını sağlar | Dynamic VRAM açıkken GPU'yu başka bir süreçle paylaşıyorsanız |
| `--disable-dynamic-vram` | Dynamic VRAM'ı kapatıp eski model yükleme yöntemine döner | Yeni bellek yönetimiyle bir iş akışında sorun yaşıyorsanız |
| `--disable-smart-memory` | Modelleri agresif biçimde sistem belleğine taşır | GPU'yu başka uygulamalarla paylaşıyorsanız |
| `--lowvram`, `--novram` | Düşük bellekli kartlar içindir; dynamic VRAM açıkken `--lowvram` etkisizdir | Küçük bellekli kartlar |
| `--cache-none` | Düğüm sonuçlarını önbelleğe almaz; her çalıştırmada tüm düğümler yeniden çalışır | Bellek çok kısıtlıysa, hız pahasına |

**GPU ve VRAM kullanımını izlemek için** sunucuda `nvidia-smi --query-gpu=index,memory.used,memory.total,utilization.gpu --format=csv -l 5` komutunu çalıştırın; her kartın bellek ve kullanım oranını 5 saniyede bir yazar. Uygulamanızdan izlemek için her ComfyUI sürecinin `GET /system_stats` yanıtındaki VRAM değerlerini okuyabilirsiniz.

## ComfyUI API nasıl kullanılır? (Python örneği)

İş akışını API biçiminde dışa aktarın, `/prompt` ile kuyruğa gönderin, `/ws` üzerinden bitişi bekleyin ve çıktıları `/history/{prompt_id}` ile alın. Dışa aktarma menüdeki **Export Workflow (API)** komutuyla yapılır; bu biçimde düğümler numaralarıyla anahtarlanır, yerleşim bilgisi yoktur.

| Uç nokta | İşlev |
|---|---|
| `POST /prompt` | İş akışını doğrular, kuyruğa ekler ve `prompt_id` döndürür |
| `GET /ws?clientId=…` | İlerleme ve durum mesajlarını gönderen WebSocket |
| `GET /history/{prompt_id}` | Biten işin çıktı dosyalarını listeler |
| `GET /view` | Çıktı dosyasını indirir |
| `GET /queue`, `POST /interrupt` | Kuyruğu gösterir, çalışan işi durdurur |
| `POST /free` | Modelleri bellekten boşaltır |
| `GET /system_stats` | GPU ve VRAM bilgisini verir |

Resmi örnekten kısaltılmış bir Python istemcisi (`pip install websocket-client`):

```python
import json, uuid, urllib.request
import websocket

SUNUCU = "127.0.0.1:8180"
client_id = str(uuid.uuid4())
prompt = json.load(open("is_akisi_api.json"))
prompt["6"]["inputs"]["text"] = "red sneaker on a white background"  # düğüm no iş akışınıza göre değişir

ws = websocket.WebSocket()
ws.connect(f"ws://{SUNUCU}/ws?clientId={client_id}")
prompt_id = str(uuid.uuid4())
govde = json.dumps({"prompt": prompt, "client_id": client_id, "prompt_id": prompt_id}).encode()
urllib.request.urlopen(urllib.request.Request(f"http://{SUNUCU}/prompt", data=govde))

while True:
    mesaj = ws.recv()
    if isinstance(mesaj, str):
        m = json.loads(mesaj)
        if m["type"] == "executing" and m["data"]["node"] is None and m["data"]["prompt_id"] == prompt_id:
            break
ws.close()

gecmis = json.load(urllib.request.urlopen(f"http://{SUNUCU}/history/{prompt_id}"))[prompt_id]
for cikti in gecmis["outputs"].values():
    for dosya in cikti.get("images", []):
        print(dosya["filename"], dosya["subfolder"], dosya["type"])
```

ComfyUI belgeleri bu ham API için sürümler arasında uyumluluk garantisi olmadığını belirtiyor. Sürüm sabitlemenin bir nedeni de bu.

## Kuyruk ve toplu üretim nasıl planlanır?

Paralellik için GPU başına bir süreç, tek işte birden çok görsel için batch boyutu kullanın. `/prompt` beklemeden döner ve işler sırayla çalışır; acil bir işi öne almak için gövdeye `"front": true` ekleyebilirsiniz. ComfyUI yalnızca değişen düğümleri yeniden çalıştırır; yalnızca tohumu (seed) değişen bir istekte metin kodlama tekrarlanmaz. Uygulamanız işleri portlara sırayla ya da `/queue` yanıtındaki bekleyen iş sayısına bakarak dağıtabilir.

## ComfyUI'ye uzaktan nasıl güvenli erişilir?

ComfyUI'yi yalnızca 127.0.0.1'de dinletin; erişimi SSH tüneli ya da parola korumalı bir nginx ters vekili üzerinden verin. Resmi belgeler sunucunun varsayılan olarak kimlik doğrulaması olmadığını ve güvenilmeyen bir ağda önüne kimlik doğrulamalı bir ters vekil konması gerektiğini söylüyor.

Tek kişilik kullanımda en kısa yol SSH tünelidir. Kendi bilgisayarınızda aşağıdaki komutu çalıştırıp tarayıcıda `http://localhost:8188` adresini açın; GPU 0'daki servise şifreli bağlantıyla erişirsiniz:

```bash
ssh -N -L 8188:127.0.0.1:8180 kullanici@sunucu-ip
```

Aynı yöntemi JupyterLab için [Jupyter rehberimizde](/blog/jupyter-bulut-gpu-rehberi/) anlattık. Ekibiniz tarayıcıdan, SSH olmadan erişecekse parola korumalı bir nginx ters vekili kullanın:

```nginx
server {
    listen 443 ssl;
    server_name comfy.ornek.com;
    # ssl_certificate ve ssl_certificate_key satırları
    auth_basic "ComfyUI";
    auth_basic_user_file /etc/nginx/.htpasswd;
    client_max_body_size 100m;

    location / {
        proxy_pass http://127.0.0.1:8180;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 3600s;
    }
}
```

Parola dosyasını `htpasswd -c /etc/nginx/.htpasswd ekip` ile oluşturun (Ubuntu'da `apache2-utils` paketindedir). `Host` satırını atlamayın: Host başlığı 127.0.0.1 olarak kalırsa ComfyUI tarayıcıdan gelen POST ve WebSocket isteklerini 403 ile reddeder. nginx varsayılan olarak 1 MB'tan büyük istek gövdelerini reddettiği için `client_max_body_size` ComfyUI'nin varsayılan 100 MB yükleme sınırına eşitlenmiştir.

Bir not daha: ComfyUI, ürettiği PNG'lerin içine iş akışını ve prompt'u gömer. Müşteriye ham çıktı teslim ediyorsanız `--disable-metadata` bayrağını kullanın. Ağ izolasyonu ve sözleşme tarafı için [GPU sunucu güvenliği ve SLA kontrol listesi](/blog/kurumsal-gpu-kiralama-guvenlik-sla/) yazımıza bakın.

## İş akışları nasıl sürümlenir?

İş akışının arayüz JSON'unu ve API JSON'unu bir git deposunda tutun. Her sürüme ComfyUI etiketini, Manager anlık görüntüsünü ve model dosyalarının `sha256sum` özetlerini ekleyin. Arayüzde kaydedilen iş akışları `user/default/workflows/` klasöründedir; bu klasörü de yedeğe alın. Bir güncellemeden sonra çıktılar değişirse önce `--disable-all-custom-nodes` ile çekirdeği deneyin; sorun kaybolursa düğümleri yarı yarıya açarak sorunlu olanı bulun.

## Bu iş için hangi GPU?

Seçimi modeliniz ve aynı anda kaç iş çalıştıracağınız belirler. Kiralamalarımız aylıktır; birkaç günlük bir deneme için saatlik bulut daha ucuz olabilir. Sürekli çalışan bir üretim servisinde ise sabit aylık fiyat, kartı dolu çalıştırdıkça görsel başına maliyeti düşürür.

- **[RTX PRO 4000](/gpu-modelleri/nvidia-rtx-pro-4000/) (24 GB):** İş akışı geliştirme, SDXL ve FP8 FLUX.1. Aylık $450.
- **[RTX 5090](/gpu-modelleri/nvidia-rtx-5090/) (32 GB):** SDXL ve FLUX.1 görsel servisleri için tek kart. Aylık $600.
- **[RTX PRO 5000](/gpu-modelleri/nvidia-rtx-pro-5000/) (48 GB):** FLUX.1'i tam kalitede çalıştıran bir servis ya da MIG ile tek kartta her biri 24 GB olan iki ayrı ComfyUI servisi. Aylık $800.
- **[L40S](/gpu-modelleri/nvidia-l40s/) (48 GB):** FLUX.1'i tam kalitede çalıştıran bir görsel üretim servisi. Aylık $900.
- **[RTX PRO 6000](/gpu-modelleri/nvidia-rtx-pro-6000/) (96 GB):** Büyük modeller, video iş akışları ya da MIG ile tek kartta dört ayrı ComfyUI servisi. Aylık $1.600.

Tek siparişte en fazla 8 GPU kiralanabilir; çok GPU'lu yapılandırma isteğinizi [sipariş formundaki](/siparis/) mesaj alanına yazın. Fiyatlar dolar cinsinden, GPU başına ve KDV hariçtir; fatura, fatura tarihindeki TCMB satış kuruyla Türk lirası olarak kesilir. Yıllık kiralamada %20 indirim uygulanır; tüm kartlar [fiyatlandırma sayfasında](/fiyatlandirma/). Sunucular Bağcılar, İstanbul'daki tesisimizde çalışır; ürün görselleriniz ve LoRA dosyalarınız Türkiye'de kalır ([KVKK ve veri konumu](/blog/kvkk-gpu-kiralama-turkiye/)). Model lisansları, ürün fotoğrafı iş akışları ve kart seçimi için [görsel üretimi hizmet sayfamıza](/hizmetler/yapay-zeka-gorsel-uretimi/), video iş akışları için [video AI üretimi rehberimize](/blog/video-ai-uretimi-gpu-kiralama/) bakın.

## Özet

- ComfyUI'yi bir sürüm etiketine sabitleyin; her güncellemeden sonra gereksinim dosyalarını yeniden kurun.
- Her GPU'ya ayrı süreç, ayrı port ve ayrı geçici klasör verin; systemd şablon birimi bunu tek dosyada çözer.
- Sunucu varsayılan olarak kimlik doğrulamasızdır: 127.0.0.1, SSH tüneli ya da parola korumalı nginx kullanın.
- Otomasyon için API biçimindeki JSON'u `/prompt`'a gönderin, bitişi `/ws` ile bekleyin, sonuçları `/history` ile alın.
- İş akışı JSON'larını, Manager anlık görüntüsünü ve model özetlerini birlikte sürümleyin.

## Kaynaklar

- [ComfyUI GitHub deposu ve README](https://github.com/Comfy-Org/ComfyUI)
- [ComfyUI başlatma bayrakları (cli_args.py)](https://github.com/Comfy-Org/ComfyUI/blob/master/comfy/cli_args.py)
- [ComfyUI belgeleri: Self-hosting](https://docs.comfy.org/development/deploy/self-hosting)
- [ComfyUI belgeleri: Sunucu uç noktaları](https://docs.comfy.org/development/comfyui-server/comms_routes)
- [ComfyUI belgeleri: Workflow API biçimi](https://docs.comfy.org/development/api-development/workflow-api-format)
- [ComfyUI-Manager yapılandırması ve güvenlik seviyeleri](https://docs.comfy.org/manager/configuration)
- [ComfyUI resmi WebSocket API örneği](https://github.com/Comfy-Org/ComfyUI/blob/master/script_examples/websockets_api_example.py)
- [nginx: WebSocket vekilleme](https://nginx.org/en/docs/http/websocket.html)
- [ComfyUI sürüm notları (v0.42.1)](https://github.com/Comfy-Org/ComfyUI/releases)
- [ComfyUI çoklu GPU düğümleri (nodes_multigpu.py)](https://github.com/Comfy-Org/ComfyUI/blob/master/comfy_extras/nodes_multigpu.py)
- [NVIDIA: nvidia-smi belgeleri](https://docs.nvidia.com/deploy/nvidia-smi/index.html)

## Sık sorulan sorular

**ComfyUI'ye parola koyabilir miyim?**
ComfyUI'nin kendi kimlik doğrulaması yoktur; --multi-user bayrağı yalnızca kullanıcı başına depolama sağlar. Parola için önüne nginx gibi bir ters vekil koyup temel kimlik doğrulama ve TLS kullanın ya da SSH tüneliyle bağlanın.

**Aynı GPU'da iki ComfyUI süreci çalıştırabilir miyim?**
Çalıştırabilirsiniz, ancak iki süreç aynı belleği ve hesap gücünü paylaşır. RTX PRO 6000'de MIG ile kartı her biri 24 GB olan dört bağımsız parçaya bölüp her parçaya ayrı bir süreç vermek daha öngörülebilir sonuç verir.

**ComfyUI güncellenince API entegrasyonum bozulur mu?**
Bozulabilir. ComfyUI belgeleri ham sunucu API'si için sürümler arası uyumluluk garantisi vermiyor. Sürümü sabitleyin ve yeni sürümü önce bir deneme sunucusunda kendi iş akışlarınızla test edin.

**Özel düğüm kurduktan sonra ComfyUI açılmazsa ne yapmalıyım?**
ComfyUI'yi --disable-all-custom-nodes bayrağıyla başlatın; açılıyorsa sorun bir düğümdedir. ComfyUI-Manager ile aldığınız anlık görüntüye cm-cli restore-snapshot komutuyla geri dönebilirsiniz.

**Birden fazla ComfyUI süreci aynı model klasörünü kullanabilir mi?**
Evet. Süreçler aynı kurulumdan ve aynı extra_model_paths.yaml dosyasından çalıştığında tek bir model klasörünü paylaşır; dosyaları her süreç için kopyalamanız gerekmez.

**ComfyUI için Docker mı kullanmalıyım, systemd mi?**
İkisi de olur. ComfyUI'nin resmi bir Docker imajı yoktur; topluluk imajlarını ya da kendi imajınızı kullanırsınız. Tek bir sunucuda sanal ortam ve systemd, daha az katmanla aynı işi görür.
