# ADR-003: Motor de Generación de Imágenes

**Fecha:** 2025-12-08
**Estado:** Aceptado

---

## Contexto

La plataforma necesita generar imágenes para marketing con:

1. Alta calidad fotográfica
2. Consistencia de marca (LoRAs)
3. Control sobre composición (ControlNets)
4. Capacidad de personalización
5. Costos controlables a escala

Opciones:
- APIs de terceros (Midjourney, DALL-E, etc.)
- Modelos open source auto-hosteados
- Híbrido

---

## Decisión

### Motor Principal: ComfyUI + Stable Diffusion XL

Usaremos **ComfyUI** como motor de generación con **SDXL** como modelo base, complementado con APIs externas para casos específicos.

### Componentes

1. **ComfyUI Server**
   - Servidor dedicado con GPU
   - API HTTP para ejecución de workflows
   - Soporte para nodos personalizados

2. **Modelos Base**
   - Stable Diffusion XL 1.0
   - Checkpoints especializados (realismo, producto, etc.)

3. **Adaptadores**
   - LoRAs para personalización de marcas/productos
   - ControlNets para poses y composición
   - IP-Adapter para consistencia de personajes

4. **Integración vía ComfyDeploy o HTTP directo**

### Arquitectura

```
┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Backend   │────▶│   Bull      │────▶│  ComfyUI    │
│   NestJS    │     │   Queue     │     │   Server    │
└─────────────┘     └─────────────┘     └─────────────┘
       │                                       │
       │◀──────── Webhook callback ───────────┘
       │
       ▼
┌─────────────┐
│   S3/MinIO  │
│   Storage   │
└─────────────┘
```

### Workflows Predefinidos

1. **product_photo_synthetic** - Fotografía de producto
2. **social_media_post** - Posts para redes
3. **ad_variations** - Variaciones A/B
4. **virtual_avatar** - Personajes consistentes

---

## Consecuencias

### Positivas

- **Control total:** Personalización ilimitada de workflows
- **Sin costos por generación:** Solo infraestructura
- **LoRAs propios:** Entrenar modelos específicos de marca
- **Sin censura externa:** Control sobre políticas de contenido
- **Escalable:** Agregar más GPUs según demanda
- **Open source:** Sin dependencia de vendor

### Negativas

- **Infraestructura:** Requiere servidor(es) con GPU
- **Complejidad:** Mantener ComfyUI y modelos actualizados
- **Expertise:** Necesario conocimiento de diffusion models
- **Tiempo inicial:** Setup más largo que usar API

### Costos Estimados

| Componente | Costo Mensual (Estimado) |
|------------|--------------------------|
| GPU Server (RTX 4090) | $300-500 cloud / $0 on-prem |
| Storage (500GB) | $20-50 |
| Bandwidth | $10-30 |
| **Total** | **$330-580/mes** |

vs API pricing: ~$0.02-0.08 por imagen × miles de imágenes

---

## APIs Complementarias

Para casos donde SDXL no es óptimo:

| Caso | API Sugerida |
|------|--------------|
| Texto perfecto en imagen | Gemini/Ideogram |
| Generación de texto/copy | OpenAI GPT-4 |
| Video (futuro) | Runway/Seedream |

---

## Alternativas Consideradas

### 1. Midjourney API

**Pros:**
- Calidad excepcional
- Sin infraestructura

**Contras:**
- No hay API oficial (solo Discord)
- Sin LoRAs personalizados
- Costos por imagen
- Políticas de contenido restrictivas

**Rechazo:** No viable sin API oficial

### 2. DALL-E 3 API

**Pros:**
- API oficial de OpenAI
- Buena calidad

**Contras:**
- Sin LoRAs
- Costos altos a escala ($0.04-0.08/imagen)
- Censura agresiva

**Rechazo:** Costos y falta de personalización

### 3. Replicate/Banana/Modal

**Pros:**
- SDXL en la nube
- Pago por uso

**Contras:**
- Costos similares a APIs
- Menos control sobre workflows
- Latencia adicional

**Rechazo:** Costo-beneficio no favorable

---

## Plan de Migración

1. **Fase 1:** ComfyUI local con workflows básicos
2. **Fase 2:** LoRAs de marcas, ComfyDeploy
3. **Fase 3:** Cluster de GPUs, auto-scaling

---

## Referencias

- [ComfyUI GitHub](https://github.com/comfyanonymous/ComfyUI)
- [SDXL Paper](https://arxiv.org/abs/2307.01952)
- [ComfyDeploy](https://www.comfydeploy.com/)

---

**Documento generado por:** Requirements-Analyst
**Fecha:** 2025-12-08
