ComfyUI/ComfyUI-master/README.md
Bahadir Ciloglu 9eb154e0ea Add GitHub Actions CI/CD pipeline with RunPod integration
- Automated testing and validation
- Docker build and push to GHCR
- Automatic RunPod build triggering on success
- Comprehensive error handling and notifications
- Documentation and setup guides
2025-11-01 15:48:04 +03:00

5.0 KiB
Raw Blame History

ComfyUI RunPod Serverless

Bu repository, ComfyUI'nin RunPod Serverless platformunda çalışması için optimize edilmiş versiyonudur.

🚀 Özellikler

  • RunPod Serverless desteği
  • Otomatik scaling ve queue yönetimi
  • GPU optimizasyonları (FP16, FP8, XFormers)
  • Yeni API servisleri (Minimax, ByteDance, Ideogram, vb.)
  • GitHub Actions CI/CD pipeline
  • Otomatik build tetikleme

📦 Kurulum

RunPod Serverless Endpoint Oluşturma

  1. RunPod Dashboard'a git

  2. ServerlessNew Endpoint

  3. GitHub Repository seç:

    • Repository: bahadirciloglu/ComfyUI
    • Branch: create_image
    • Dockerfile Path: Dockerfile
    • Build Context: .
  4. GPU Configuration:

    • Önerilen: 32GB veya 24GB
    • Worker Type: GPU
    • Endpoint Type: Queue
  5. Environment Variables ekle:

    RUNPOD_API_KEY=your_api_key
    CIVITAI_API_KEY=your_civitai_key
    HUGGINGFACE_USERNAME=your_username
    HUGGINGFACE_PASSWORD=your_password
    COMFYUI_SERVERLESS=true
    COMFYUI_FAST_MODE=true
    

GitHub Secrets Ayarlama

Repository Settings → Secrets and variables → Actions:

RUNPOD_API_KEY=your_runpod_api_key
RUNPOD_ENDPOINT_ID=your_endpoint_id

🔄 CI/CD Pipeline

Otomatik İş Akışı

  1. Code Pushcreate_image branch
  2. GitHub Actions çalışır:
    • Python syntax kontrolü
    • Dockerfile validasyonu
    • Docker build testi
    • Container registry'ye push
  3. Başarılı olursa → RunPod build tetiklenir
  4. Hata varsa → RunPod build tetiklenmez

Manuel Test

# Sadece testleri çalıştır
gh workflow run test-only.yml

# Full pipeline çalıştır
git push origin create_image

🧪 Test Etme

API Request Örneği

curl -X POST https://api.runpod.ai/v2/YOUR_ENDPOINT_ID/runsync \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "input": {
      "workflow": {
        "3": {
          "inputs": {
            "seed": 42,
            "steps": 20,
            "cfg": 7.0,
            "sampler_name": "euler",
            "scheduler": "normal",
            "denoise": 1.0,
            "model": ["4", 0],
            "positive": ["6", 0],
            "negative": ["7", 0],
            "latent_image": ["5", 0]
          },
          "class_type": "KSampler"
        },
        "4": {
          "inputs": {
            "ckpt_name": "sd_xl_base_1.0.safetensors"
          },
          "class_type": "CheckpointLoaderSimple"
        },
        "5": {
          "inputs": {
            "width": 1024,
            "height": 1024,
            "batch_size": 1
          },
          "class_type": "EmptyLatentImage"
        },
        "6": {
          "inputs": {
            "text": "a beautiful landscape",
            "clip": ["4", 1]
          },
          "class_type": "CLIPTextEncode"
        },
        "7": {
          "inputs": {
            "text": "blurry, low quality",
            "clip": ["4", 1]
          },
          "class_type": "CLIPTextEncode"
        },
        "8": {
          "inputs": {
            "samples": ["3", 0],
            "vae": ["4", 2]
          },
          "class_type": "VAEDecode"
        },
        "9": {
          "inputs": {
            "filename_prefix": "ComfyUI",
            "images": ["8", 0]
          },
          "class_type": "SaveImage"
        }
      }
    }
  }'

📊 Monitoring

Build Status

  • GitHub Actions: Repository → Actions tab
  • RunPod: Dashboard → Serverless → Your Endpoint → Builds

Logs

  • RunPod Dashboard → Logs tab
  • Real-time monitoring

Metrics

  • Request volume
  • Worker scaling
  • Billing information

🔧 Geliştirme

Yerel Test

# Environment setup
cp .env.example .env
# .env dosyasını düzenle

# Docker build test
docker build -t comfyui-test .

# Container test
docker run -p 8000:8000 comfyui-test

Yeni Özellik Ekleme

  1. Feature branch oluştur
  2. Değişiklikleri yap
  3. Pull request aç
  4. CI testleri geçince merge et
  5. create_image branch'ına merge olunca otomatik deploy

📝 Environment Variables

Tüm environment variables için .env.example dosyasına bakın.

Temel Ayarlar

  • RUNPOD_API_KEY: RunPod API anahtarı
  • COMFYUI_SERVERLESS=true: Serverless modu
  • COMFYUI_FAST_MODE=true: Hızlı optimizasyonlar

Performance Ayarları

  • COMFYUI_FP16_ACCUMULATION=true: FP16 hızlandırma
  • COMFYUI_VRAM_MANAGEMENT=auto: VRAM yönetimi
  • COMFYUI_CACHE_TYPE=none: Serverless için cache

🆘 Sorun Giderme

Build Hataları

  1. GitHub Actions logs kontrol et
  2. Dockerfile syntax kontrol et
  3. Python syntax hataları düzelt

Runtime Hataları

  1. RunPod logs kontrol et
  2. Environment variables kontrol et
  3. Model dosyaları kontrol et

Performance Sorunları

  1. GPU memory kullanımı kontrol et
  2. Batch size ayarla
  3. Cache ayarlarını optimize et

📞 Destek

  • GitHub Issues: Hata raporları ve özellik istekleri
  • RunPod Discord: Platform desteği
  • ComfyUI Community: Workflow yardımı