mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-11 14:02:37 +08:00
- 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
220 lines
5.0 KiB
Markdown
220 lines
5.0 KiB
Markdown
# 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. **Serverless** → **New 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 Push** → `create_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
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```bash
|
||
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
|
||
|
||
```bash
|
||
# 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ı |