# EPIC-004: Generación de Contenido

**Versión:** 1.0.0
**Fecha:** 2025-12-08
**Fase:** 1 - MVP Core

---

## Descripción

Esta épica cubre el motor de generación de contenido IA, workflows de ComfyUI, modelos personalizados y cola de tareas.

---

## User Stories

### US-004-001: Generar Imagen con Prompt

**Como** creativo
**Quiero** generar una imagen escribiendo un prompt
**Para** crear contenido visual rápidamente

**Criterios de Aceptación:**
- [ ] Formulario con campo de prompt principal
- [ ] Campo opcional de negative prompt
- [ ] Selector de dimensiones (presets comunes)
- [ ] Botón para generar
- [ ] Preview del resultado cuando completa
- [ ] Opción de regenerar con mismo prompt (nuevo seed)

**Prioridad:** Must Have

---

### US-004-002: Seleccionar Workflow de Generación

**Como** creativo
**Quiero** elegir un workflow predefinido
**Para** obtener resultados optimizados para mi caso de uso

**Criterios de Aceptación:**
- [ ] Lista de workflows disponibles con descripción
- [ ] Preview/ejemplos de cada workflow
- [ ] Formulario dinámico según inputs del workflow
- [ ] Ver tiempo estimado de generación
- [ ] Botón para ejecutar workflow

**Prioridad:** Must Have

---

### US-004-003: Generar Fotografía de Producto

**Como** creativo
**Quiero** usar el workflow de fotografía de producto
**Para** crear imágenes de catálogo profesionales

**Criterios de Aceptación:**
- [ ] Seleccionar producto del CRM o ingresar datos
- [ ] Opción de subir imagen de referencia
- [ ] Selector de fondo: blanco, lifestyle, custom
- [ ] Selector de estilo: minimalist, premium, casual
- [ ] Cantidad de variaciones a generar
- [ ] LoRA de marca aplicado automáticamente si existe

**Prioridad:** Must Have

---

### US-004-004: Generar Post para Redes Sociales

**Como** creativo
**Quiero** usar el workflow de social media
**Para** crear contenido listo para publicar

**Criterios de Aceptación:**
- [ ] Seleccionar producto o marca
- [ ] Elegir canal (Instagram, Facebook, TikTok, etc.)
- [ ] Elegir formato (post, story, carousel)
- [ ] Brief resumido o usar datos de campaña
- [ ] Generar imagen + copy sugerido
- [ ] Opción de regenerar solo imagen o solo copy

**Prioridad:** Must Have

---

### US-004-005: Generar Variaciones de Imagen

**Como** creativo
**Quiero** generar múltiples variaciones de una imagen
**Para** hacer testing A/B

**Criterios de Aceptación:**
- [ ] Seleccionar imagen base (existente o nueva)
- [ ] Tipo de variación: color, fondo, composición
- [ ] Cantidad de variaciones
- [ ] Ver todas las variaciones en grid
- [ ] Seleccionar cuáles guardar

**Prioridad:** Should Have

---

### US-004-006: Aplicar Upscaling a Imagen

**Como** creativo
**Quiero** aumentar la resolución de una imagen
**Para** usarla en materiales de alta calidad

**Criterios de Aceptación:**
- [ ] Seleccionar imagen existente
- [ ] Elegir factor de escala: 2x, 4x
- [ ] Ver preview comparativo
- [ ] Nueva imagen creada (no reemplaza original)
- [ ] Dimensiones finales mostradas

**Prioridad:** Should Have

---

### US-004-007: Generar Copy Publicitario

**Como** creativo
**Quiero** generar textos publicitarios con IA
**Para** acompañar las imágenes

**Criterios de Aceptación:**
- [ ] Ingresar contexto: producto, audiencia, objetivo
- [ ] Seleccionar tipo: título, descripción, CTA, post completo
- [ ] Seleccionar tono (o heredar de marca)
- [ ] Generar múltiples variaciones
- [ ] Copiar al portapapeles fácilmente
- [ ] Guardar como asset de tipo "copy"

**Prioridad:** Must Have

---

### US-004-008: Generar Hashtags

**Como** creativo
**Quiero** obtener hashtags relevantes
**Para** optimizar el alcance en redes

**Criterios de Aceptación:**
- [ ] Ingresar descripción del contenido
- [ ] Seleccionar plataforma
- [ ] Cantidad de hashtags deseada
- [ ] Lista de hashtags generados
- [ ] Botón para copiar todos

**Prioridad:** Could Have

---

### US-004-009: Ver Cola de Generación

**Como** creativo
**Quiero** ver el estado de mis jobs de generación
**Para** saber cuándo estarán listos

**Criterios de Aceptación:**
- [ ] Lista de mis jobs recientes
- [ ] Status: en cola, procesando, completado, fallido
- [ ] Progreso % para jobs activos
- [ ] Tiempo en cola y tiempo de procesamiento
- [ ] Click para ver resultado o detalles de error

**Prioridad:** Must Have

---

### US-004-010: Cancelar Job en Cola

**Como** creativo
**Quiero** cancelar un job que ya no necesito
**Para** liberar recursos

**Criterios de Aceptación:**
- [ ] Botón cancelar visible en jobs "queued"
- [ ] Confirmación antes de cancelar
- [ ] Job cambia a "cancelled"
- [ ] No consume cuota si se cancela antes de procesar

**Prioridad:** Should Have

---

### US-004-011: Reintentar Job Fallido

**Como** creativo
**Quiero** reintentar un job que falló
**Para** obtener el resultado sin reconfigurar

**Criterios de Aceptación:**
- [ ] Botón "Reintentar" en jobs fallidos
- [ ] Ver mensaje de error original
- [ ] Opción de modificar parámetros antes de reintentar
- [ ] Nuevo job creado vinculado al original

**Prioridad:** Should Have

---

### US-004-012: Registrar Modelo LoRA

**Como** Admin
**Quiero** subir un modelo LoRA entrenado
**Para** usarlo en las generaciones

**Criterios de Aceptación:**
- [ ] Upload de archivo .safetensors
- [ ] Ingresar nombre y descripción
- [ ] Especificar trigger word
- [ ] Asociar a marca (opcional)
- [ ] Subir imágenes de preview
- [ ] Modelo disponible después de upload

**Prioridad:** Must Have

---

### US-004-013: Listar Modelos Disponibles

**Como** creativo
**Quiero** ver qué modelos personalizados tenemos
**Para** elegir el adecuado para cada trabajo

**Criterios de Aceptación:**
- [ ] Lista de LoRAs con nombre, tipo, marca asociada
- [ ] Preview images de cada modelo
- [ ] Filtro por tipo y marca
- [ ] Ver trigger word para uso en prompts

**Prioridad:** Must Have

---

### US-004-014: Ver Cuota de Generación

**Como** usuario
**Quiero** ver cuántas generaciones me quedan
**Para** planificar mi trabajo

**Criterios de Aceptación:**
- [ ] Indicador visible en header o sidebar
- [ ] Generaciones usadas / límite mensual
- [ ] Barra de progreso visual
- [ ] Alerta cuando queda <20%
- [ ] Info de cuándo se renueva el período

**Prioridad:** Should Have

---

### US-004-015: Recibir Notificación de Job Completado

**Como** creativo
**Quiero** recibir notificación cuando mi generación termine
**Para** no tener que estar revisando constantemente

**Criterios de Aceptación:**
- [ ] Notificación in-app cuando job completa
- [ ] Preview del resultado en la notificación
- [ ] Click lleva al asset generado
- [ ] Opción de habilitar notificaciones de navegador
- [ ] Notificación también si job falla

**Prioridad:** Could Have

---

## Notas Técnicas

- ComfyUI integrado via API HTTP o ComfyDeploy
- Bull/BullMQ para cola de tareas
- WebSocket para progreso en tiempo real
- Negative prompts de calidad agregados automáticamente
- Cache de modelos en VRAM para performance

---

## Dependencias

- EPIC-001: Autenticación
- EPIC-002: CRM (marcas, productos, LoRAs)
- Infraestructura: ComfyUI server con GPU

---

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