- Update vision, architecture and technical documentation - Update module definitions (PMC-001 to PMC-008) - Update requirements documentation - Add CONTEXT-MAP.yml and ENVIRONMENT-INVENTORY.yml - Add orchestration guidelines and references 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
14 KiB
| id | title | type | status | priority | module | project | version | rf_count | created_date | updated_date |
|---|---|---|---|---|---|---|---|---|---|---|
| RF-PMC-004 | Generation Module | Requirement | Done | Alta | generation | platform_marketing_content | 1.0 | 18 | 2025-12-08 | 2026-01-04 |
Requerimientos Funcionales - PMC-004 Generation
Módulo: Generation (Motor IA) Versión: 1.0.0 Fecha: 2025-12-08
Generación de Imágenes
RF-PMC-004-001: Generar Imagen Text-to-Image
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-001 |
| Nombre | Generar Imagen Text-to-Image |
| Prioridad | P1 |
| Actor | Creative |
Datos de entrada:
- prompt: string (requerido)
- negative_prompt: string (opcional)
- width: number (default: 1024)
- height: number (default: 1024)
- seed: number (opcional, aleatorio si no se especifica)
- steps: number (default: 30)
- cfg_scale: number (default: 7.5)
- lora_id: UUID (opcional)
- brand_id: UUID (opcional, para cargar LoRA automáticamente)
Criterios de aceptación:
- Imagen se genera correctamente
- Parámetros se aplican
- LoRA se carga si especificado
- Asset se crea automáticamente
RF-PMC-004-002: Generar Imagen Image-to-Image
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-002 |
| Nombre | Generar Imagen Image-to-Image |
| Prioridad | P1 |
| Actor | Creative |
Datos de entrada:
- input_image: file/URL (requerido)
- prompt: string (requerido)
- strength: number (0.0-1.0, default: 0.75)
- Otros parámetros de T2I
Criterios de aceptación:
- Imagen input se procesa correctamente
- Strength afecta resultado
- Formatos soportados: PNG, JPG, WebP
RF-PMC-004-003: Aplicar Inpainting
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-003 |
| Nombre | Aplicar Inpainting |
| Prioridad | P2 |
| Actor | Creative |
Datos de entrada:
- input_image: file/URL (requerido)
- mask_image: file (requerido)
- prompt: string (requerido)
- Otros parámetros de generación
Descripción: Regenerar solo la parte enmascarada de una imagen.
Criterios de aceptación:
- Máscara define área a regenerar
- Resto de imagen preservado
- Editor de máscara en UI
RF-PMC-004-004: Aplicar Upscaling
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-004 |
| Nombre | Aplicar Upscaling |
| Prioridad | P1 |
| Actor | Creative |
Datos de entrada:
- input_image: file/URL (requerido)
- scale: number (2 o 4)
- model: string (default: "RealESRGAN")
Criterios de aceptación:
- Imagen se escala correctamente
- Calidad mejorada, no solo interpolación
- Formatos de salida preservados
RF-PMC-004-005: Generar Batch de Imágenes
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-005 |
| Nombre | Generar Batch de Imágenes |
| Prioridad | P1 |
| Actor | Creative |
Datos de entrada:
- base_params: object (parámetros comunes)
- count: number (cantidad a generar)
- variation_type: string (seed, prompt_variation)
Criterios de aceptación:
- N imágenes generadas
- Seeds diferentes por imagen
- Todas vinculadas al mismo job
RF-PMC-004-006: Remover Fondo
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-006 |
| Nombre | Remover Fondo |
| Prioridad | P2 |
| Actor | Creative |
Datos de entrada:
- input_image: file/URL (requerido)
Criterios de aceptación:
- Fondo removido correctamente
- Salida PNG con transparencia
- Bordes suaves en objetos
Generación de Texto
RF-PMC-004-007: Generar Copy Publicitario
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-007 |
| Nombre | Generar Copy Publicitario |
| Prioridad | P1 |
| Actor | Creative |
Datos de entrada:
- context: object
- product_name: string
- product_description: string
- brand_tone: string
- target_audience: string
- objective: string
- type: enum (title, description, cta, full_post)
- max_length: number (opcional)
- variations: number (default: 3)
Criterios de aceptación:
- Texto generado coherente
- Tono respeta brand guidelines
- Múltiples variaciones disponibles
RF-PMC-004-008: Generar Hashtags
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-008 |
| Nombre | Generar Hashtags |
| Prioridad | P2 |
| Actor | Creative |
Datos de entrada:
- context: string (descripción del contenido)
- count: number (default: 10)
- platform: string (instagram, twitter, linkedin)
Criterios de aceptación:
- Hashtags relevantes generados
- Formato correcto (#hashtag)
- Sin espacios ni caracteres inválidos
RF-PMC-004-009: Adaptar Tono de Texto
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-009 |
| Nombre | Adaptar Tono de Texto |
| Prioridad | P2 |
| Actor | Creative |
Datos de entrada:
- input_text: string (requerido)
- target_tone: string (formal, casual, playful, professional)
Criterios de aceptación:
- Mensaje preservado, tono cambiado
- Opciones de tono claras
Workflows
RF-PMC-004-010: Listar Workflow Templates
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-010 |
| Nombre | Listar Workflow Templates |
| Prioridad | P1 |
| Actor | Creative |
Datos de salida:
- Lista de workflows disponibles
- Por cada uno: nombre, descripción, tipo, inputs requeridos
Criterios de aceptación:
- Workflows de sistema incluidos
- Workflows custom del tenant incluidos
- Filtro por tipo/categoría
RF-PMC-004-011: Ver Detalle de Workflow
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-011 |
| Nombre | Ver Detalle de Workflow |
| Prioridad | P1 |
| Actor | Creative |
Datos de salida:
- Descripción completa
- Inputs requeridos y opcionales
- Outputs esperados
- Ejemplos de resultado
- Tiempo estimado
Criterios de aceptación:
- Schema de inputs documentado
- Ejemplos visuales disponibles
RF-PMC-004-012: Ejecutar Workflow
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-012 |
| Nombre | Ejecutar Workflow |
| Prioridad | P1 |
| Actor | Creative |
Datos de entrada:
- workflow_id: UUID (requerido)
- inputs: object (según schema del workflow)
- campaign_id: UUID (opcional)
- brand_id: UUID (opcional)
Flujo:
- Sistema valida inputs contra schema
- Sistema verifica cuotas del tenant
- Sistema crea GenerationJob
- Sistema encola job
- Sistema retorna job_id
Criterios de aceptación:
- Validación de inputs funciona
- Job se crea correctamente
- ID retornado para tracking
RF-PMC-004-013: Crear Workflow Template (Admin)
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-013 |
| Nombre | Crear Workflow Template |
| Prioridad | P3 |
| Actor | Tenant Admin |
Datos de entrada:
- name: string
- description: text
- type: enum
- comfyui_workflow: JSON
- input_schema: JSON
- output_config: object
Criterios de aceptación:
- Workflow se almacena correctamente
- Schema de inputs validado
- Disponible para usuarios del tenant
Modelos Personalizados
RF-PMC-004-014: Listar Modelos Custom
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-014 |
| Nombre | Listar Modelos Custom |
| Prioridad | P1 |
| Actor | Creative |
Datos de salida:
- Lista de LoRAs, checkpoints disponibles
- Status de cada uno
- Brand asociada (si aplica)
Criterios de aceptación:
- Solo modelos del tenant
- Filtro por tipo y brand
- Preview images mostradas
RF-PMC-004-015: Registrar Modelo Custom
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-015 |
| Nombre | Registrar Modelo Custom |
| Prioridad | P1 |
| Actor | Tenant Admin |
Datos de entrada:
- name: string (requerido)
- type: enum (lora, checkpoint, embedding)
- file: upload (requerido)
- purpose: string
- trigger_word: string (para LoRAs)
- brand_id: UUID (opcional)
- preview_images: array[file]
Criterios de aceptación:
- Archivo subido a storage
- Registro en BD
- Disponible para generación
RF-PMC-004-016: Eliminar Modelo Custom
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-016 |
| Nombre | Eliminar Modelo Custom |
| Prioridad | P2 |
| Actor | Tenant Admin |
Criterios de aceptación:
- Confirmación requerida
- Archivo eliminado de storage
- Registro eliminado de BD
RF-PMC-004-017: Iniciar Entrenamiento de LoRA
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-017 |
| Nombre | Iniciar Entrenamiento de LoRA |
| Prioridad | P2 |
| Actor | Tenant Admin |
Datos de entrada:
- name: string
- training_images: array[file] (mínimo 10)
- base_model: string
- steps: number (default: 1000)
- learning_rate: number (default: 0.0001)
- trigger_word: string (requerido)
Criterios de aceptación:
- Mínimo 10 imágenes validado
- Job de entrenamiento creado
- Status actualizado durante entrenamiento
- Modelo disponible al completar
Cola de Tareas
RF-PMC-004-018: Ver Estado de Cola
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-018 |
| Nombre | Ver Estado de Cola |
| Prioridad | P1 |
| Actor | Creative, Tenant Admin |
Datos de salida:
- Jobs en cola (pending)
- Jobs procesando
- Jobs completados (recientes)
- Jobs fallidos (recientes)
Criterios de aceptación:
- Actualización en tiempo real
- Filtro por usuario/campaña
- Progreso visible para jobs activos
RF-PMC-004-019: Ver Detalle de Job
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-019 |
| Nombre | Ver Detalle de Job |
| Prioridad | P1 |
| Actor | Creative |
Datos de salida:
- Parámetros de entrada
- Status y progreso
- Timestamps
- Outputs generados
- Error (si falló)
Criterios de aceptación:
- Toda la información visible
- Links a assets generados
RF-PMC-004-020: Cancelar Job
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-020 |
| Nombre | Cancelar Job |
| Prioridad | P2 |
| Actor | Creative |
Precondiciones:
- Job en status "queued"
Criterios de aceptación:
- Job cambia a "cancelled"
- No se ejecuta
- Cuota no consumida
RF-PMC-004-021: Reintentar Job Fallido
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-021 |
| Nombre | Reintentar Job Fallido |
| Prioridad | P2 |
| Actor | Creative |
Precondiciones:
- Job en status "failed"
Criterios de aceptación:
- Nuevo job creado con mismos parámetros
- Original marcado como "retried"
- Hasta 3 reintentos permitidos
RF-PMC-004-022: Cambiar Prioridad de Job (Admin)
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-022 |
| Nombre | Cambiar Prioridad de Job |
| Prioridad | P3 |
| Actor | Tenant Admin |
Precondiciones:
- Job en status "queued"
Criterios de aceptación:
- Prioridad actualizada
- Posición en cola recalculada
Integración ComfyUI
RF-PMC-004-023: Enviar Workflow a ComfyUI
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-023 |
| Nombre | Enviar Workflow a ComfyUI |
| Prioridad | P1 |
| Actor | Sistema |
Descripción: El sistema debe enviar workflows a ComfyUI para ejecución.
Criterios de aceptación:
- Payload correcto enviado
- Respuesta de ComfyUI procesada
- Errores manejados correctamente
RF-PMC-004-024: Recibir Resultados de ComfyUI
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-024 |
| Nombre | Recibir Resultados de ComfyUI |
| Prioridad | P1 |
| Actor | Sistema |
Descripción: El sistema debe procesar callbacks/webhooks de ComfyUI con resultados.
Criterios de aceptación:
- Imágenes descargadas y almacenadas
- Assets creados automáticamente
- Job actualizado a "completed"
RF-PMC-004-025: Monitorear Progreso en ComfyUI
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-025 |
| Nombre | Monitorear Progreso en ComfyUI |
| Prioridad | P2 |
| Actor | Sistema |
Descripción: Tracking de progreso durante ejecución del workflow.
Criterios de aceptación:
- Websocket conectado a ComfyUI
- Progreso actualizado en tiempo real
- Propagado a frontend
Validaciones
RF-PMC-004-026: Validar Cuota Antes de Generación
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-026 |
| Nombre | Validar Cuota Antes de Generación |
| Prioridad | P1 |
| Actor | Sistema |
Descripción: Verificar límites del tenant antes de aceptar job.
Criterios de aceptación:
- Generaciones mensuales verificadas
- Storage verificado para outputs
- Error claro si excede límite
RF-PMC-004-027: Agregar Negative Prompts Automáticos
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-027 |
| Nombre | Agregar Negative Prompts Automáticos |
| Prioridad | P2 |
| Actor | Sistema |
Descripción: Añadir negative prompts de calidad estándar.
Negative prompts por defecto:
- "blurry, low quality, watermark, signature, bad anatomy, deformed..."
Criterios de aceptación:
- Negativos agregados automáticamente
- Usuario puede sobreescribir
- Configurables por tenant
RF-PMC-004-028: Cargar Identidad de Marca Automáticamente
| Campo | Valor |
|---|---|
| ID | RF-PMC-004-028 |
| Nombre | Cargar Identidad de Marca Automáticamente |
| Prioridad | P1 |
| Actor | Sistema |
Descripción: Al generar para una campaña/marca, cargar automáticamente:
- LoRAs asociados
- Colores de marca (para prompts)
- Forbidden words (para negative prompts)
- Tono de voz (para texto)
Criterios de aceptación:
- LoRA se inyecta en workflow
- Colores incluidos en prompt si aplica
- Forbidden words en negative prompt
Resumen
| Prioridad | Cantidad |
|---|---|
| P1 | 17 |
| P2 | 9 |
| P3 | 2 |
| Total | 28 |
Documento generado por: Requirements-Analyst Fecha: 2025-12-08