Funcionalidades

Reconocimiento Facial — Encuentra tus Fotos - Postea.la

**Fecha:** Noviembre 2026

Reconocimiento Facial — Encuentra tus Fotos - Postea.la

Resumen Funcional para NotebookLM

Fecha: Noviembre 2026
Objetivo: Documentación funcional del sistema de búsqueda de fotos por reconocimiento facial
Tipo: ⭐ CARACTERÍSTICA PREMIUM (Plan Profesional y Platinum)
Estado: ✅ Completamente en producción

✅ En producción (Noviembre 2026)

  • Pipeline de indexación automática al subir fotos (DetectFaces + IndexFaces)
  • Colección Rekognition por evento (postea-{slug})
  • Overlay de caras en photo-detail con etiquetas de nombre
  • Página de invitado (/event/:slug/persona/:faceId) con fotos, identificación y saludos
  • Identificación de invitados: primer invitado en poner nombre lo guarda para todos
  • Auto-nombrado: al subir foto nueva, si la cara ya tiene nombre se asigna automáticamente
  • Propagación de nombres: al nombrar a alguien, todos sus faceIds similares quedan nombrados
  • faceRecognitionEnabled devuelto por todos los endpoints del backend
  • Evento demo (postea-demo) activo y verificado en prod
  • Página "Personas del evento" (/event/:slug/personas) con lista de identificados y sin identificar
  • Avatares con crop de cara usando bounding box CSS — muestra la cara centrada en el círculo
  • Conteo de fotos preciso usando COUNT(DISTINCT photo_id) con filtro is_active=1
  • Agrupación por nombre — personas con múltiples faceIds cuentan como una sola
  • totalPersons incluido en el response de perfil (GET /persons/{faceId})
  • Perfil basado en BD — GET /persons/{faceId} agrupa todos los faceIds con el mismo nombre sin llamar a Rekognition
  • Template Pro (/event-pro/:slug) — reconocimiento facial integrado con botón "Find Me" en nav inferior, sheet con cámara, perfiles en ProPersonProfileComponent
  • Perfiles enriquecidos en Template Pro — campos opcionales: jobTitle, company, city, linkedinUrl, instagramUrl configurables por el organizador
  • Swipe entre fotos en photo detail (Pro) — swipe izquierda/derecha y flechas de teclado; al llegar al borde carga el siguiente lote automáticamente
  • "Cargar más" en perfiles — fotos se agregan al final del grid (append), 9 por carga
  • Stats bar de participantes/identificados eliminada del header Pro (limpieza de UI)

🚀 ¿Qué hace esta función?

Permite que cada invitado encuentre automáticamente todas las fotos del evento donde aparece él, y que los demás invitados puedan identificarle y dejarle saludos personalizados.

El problema que resuelve

En una boda con 300 fotos, un invitado quiere encontrar las fotos donde sale él. Sin esta función tiene que:

  • Revisar las 300 fotos una por una
  • Pedirle al fotógrafo que le mande las suyas
  • Esperar a que alguien las comparta en WhatsApp

Con esta función: En 3 segundos, el sistema le muestra exactamente las fotos donde aparece.


🎯 ¿Cómo lo usa el invitado?

Ver personas en una foto

1. Invitado abre cualquier foto del álbum
   ↓
2. Toca el ícono "Ver personas" (círculo superior izquierdo)
   ↓
3. Aparecen recuadros sobre cada cara detectada
   - Si la persona ya fue identificada: muestra su nombre
   - Si no: muestra "¿Quién es?"
   ↓
4. Toca cualquier recuadro → va a la página de ese invitado

Página del invitado (/event/:slug/persona/:faceId)

┌─────────────────────────────────────────┐
│  ←  (botón volver)                      │
│                                         │
│         [Avatar circular 88px]          │
│           Rosa María  ✏️                │
│      [Ver todas las personas  64]       │
├─────────────────────────────────────────┤
│  [ Fotos  8 ]    [ Saludos  3 ]         │
│  ─────────────                          │
├─────────────────────────────────────────┤
│  [📸][📸][📸]                           │
│  [📸][📸][📸]                           │
│       [Ver más fotos]                   │
└─────────────────────────────────────────┘
  • Header centrado con avatar grande (88px), nombre en serif, botón lápiz circular
  • Botón pill dorado "Ver todas las personas" con badge del total (ej. 64)
  • Panel de edición de nombre separado debajo del header cuando se activa
  • Tabs con contador activo en dorado, inactivo en gris
  • Grid 3 columnas cuadradas flush al borde, overlay "+N" en última celda si hay más

Identificar a un invitado

1. En la página del invitado, tocar "Identificar"
   ↓
2. Escribir el nombre del invitado
   ↓
3. Guardar — el nombre aparece en todas las fotos del evento
   donde aparezca esa persona (propagación automática)

Nota: Solo el primero en poner nombre lo guarda. Si ya tiene nombre, aparece un lápiz ✏️ para editarlo.

Dejar un saludo

1. En la página del invitado, escribir el mensaje en "Deja un saludo..."
2. Tocar el botón enviar
3. El saludo queda visible para todos

🎨 Template Pro — Experiencia de Reconocimiento Facial

El template Pro (/event-pro/:slug) ofrece una experiencia mejorada y visualmente premium del reconocimiento facial.

Acceso a "Find Me" en el Template Pro

El botón "Find Me" está integrado en la barra de navegación inferior del template Pro (junto a Fotos y Subir). Al tocarlo:

1. Se abre un sheet desde abajo con la cámara del celular activa
   ↓
2. El invitado apunta la cámara a su cara
   ↓
3. El sistema compara con las caras indexadas del evento
   ↓
4. Si encuentra match → navega a /event-pro/:slug/persona/:faceId
   Si no encuentra → mensaje "No encontramos tu cara en el evento"

Perfiles de persona en Template Pro (/event-pro/:slug/persona/:faceId)

Los perfiles en el template Pro tienen diseño dark/premium y campos adicionales opcionales:

Campo Descripción
jobTitle Cargo o profesión del invitado
company Empresa donde trabaja
city Ciudad de residencia
linkedinUrl Perfil de LinkedIn
instagramUrl Perfil de Instagram

Estos campos son configurables por el organizador en el admin del evento (face_profile_config). Solo se muestran los campos que el organizador haya habilitado.

Los perfiles usan el componente ProPersonProfileComponent con:

  • Diseño dark/premium consistente con el template Pro
  • Avatar con crop de cara via bounding box
  • Grid de fotos con "Cargar más" (append, 9 fotos por carga)
  • Tabs Fotos / Saludos

Navegación por swipe en photo detail (Pro)

Dentro de una foto abierta en el template Pro:

  • Swipe izquierda → foto siguiente
  • Swipe derecha → foto anterior
  • Teclas ← → también funcionan (desktop)
  • Al llegar a la última foto del lote cargado → carga automáticamente el siguiente lote y continúa la navegación sin interrupciones

🧑‍🤝‍🧑 Página "Personas del evento" (/event/:slug/personas)

Lista de todas las personas reconocidas en el evento, dividida en dos tabs:

  • Identificadas (N): personas que ya tienen nombre — un entry por nombre, con conteo de fotos único (COUNT DISTINCT photo_id con is_active=1)
  • Sin identificar (N): personas sin nombre — una por faceId

Cada persona muestra:

  • Avatar circular con crop de cara usando bounding box — la cara aparece centrada y ampliada en el círculo
  • Nombre (o ? badge para sin identificar)
  • Contador de fotos

CTA "¿Falta alguien?"

Al fondo de la página hay una card: "Ayúdanos identificando las personas para una mejor experiencia". Al tocarla va directamente al tab Sin identificar.


⚙️ ¿Cómo lo activa el organizador?

1. Inicia sesión en el Panel de Administración
   ↓
2. Selecciona tu evento
   ↓
3. Ve a "Configuración" → "Reconocimiento Facial"
   ↓
4. Activa el interruptor:
   ⚪ OFF → 🟢 ON
   ↓
5. El sistema empieza a analizar automáticamente
   todas las fotos nuevas que suban los invitados

Una vez activado, el organizador no necesita hacer nada más. El sistema trabaja en segundo plano.


🔄 ¿Cómo funciona en segundo plano?

Cuando un invitado sube una foto:

Invitado sube foto
        ↓
Sistema guarda en S3 (original)
        ↓
[si moderación IA activa] → Analiza contenido
        ↓
[si reconocimiento facial activo] → Detecta y registra
   todos los rostros de la foto (bbox + faceId)
        ↓
[si ya hay personas nombradas en el evento]
   → SearchFaces por cada cara nueva
   → Si hay match con nombre existente → auto-nombra
        ↓
Foto aparece en galería con overlay de caras disponible

Cuando un invitado nombra a alguien:

Invitado escribe nombre → guarda
        ↓
Backend hace SearchFaces con ese faceId
        ↓
Todos los faceIds similares (misma persona en otras fotos)
quedan nombrados automáticamente en event_face_persons

💡 Características importantes

Identificación colaborativa

Cualquier invitado puede nombrar a cualquier persona. El nombre queda visible para todos los demás. Si ya fue identificado, aparece el badge "Identificado ✅".

Saludos por persona

Cada invitado tiene su propia sección de saludos donde otros pueden dejar mensajes. Se almacenan en la tabla comments con content_type = 'PERSON'.

Grid de fotos paginado

Las fotos del invitado se muestran en un grid de 3 columnas con botón "Ver más fotos" que agrega (append) las siguientes fotos al final del grid — 9 fotos por carga. No reemplaza las ya cargadas.

Propagación automática de nombres

Rekognition asigna un faceId único por cada foto indexada. Al nombrar a alguien, el sistema hace SearchFaces para encontrar todos sus faceIds en el evento y guarda el nombre en todos ellos — así el nombre aparece en todas las fotos sin que el invitado tenga que hacerlo manualmente.

Privacidad por diseño

  • Los datos biométricos no se almacenan permanentemente — solo referencias internas para búsqueda
  • Cuando el evento vence, todos los datos de reconocimiento facial se eliminan automáticamente
  • El organizador puede desactivar el feature en cualquier momento
  • Los invitados no están obligados a usar la función

Funciona con fotos de grupo

La función detecta múltiples caras en una sola foto. Si hay 15 personas en una foto, los 15 pueden tocar su cara y encontrar sus fotos.

Sin fricción para el invitado

  • No necesita registrarse
  • No necesita instalar ninguna app
  • Funciona directamente desde el navegador del celular

📋 Limitaciones conocidas

Situación Comportamiento
Cara muy pequeña en foto grupal lejana Puede no detectarse
Foto muy oscura o borrosa Baja confianza, puede no aparecer
Persona de perfil o con la cara tapada No se detecta
Foto con más de 15 rostros Se indexan los más prominentes
Foto de selfie con filtros fuertes Puede afectar la precisión

💰 ¿En qué plan está disponible?

Plan Reconocimiento Facial
Gratuito ❌ No disponible
Party ❌ No disponible
Profesional ❌ No disponible
Platinum ✅ Incluido

Sin costo adicional para el organizador — está incluido en el plan.

Costo real de AWS por evento (60 fotos, 20 búsquedas):

Concepto Costo estimado
Detectar rostros en fotos ~$0.06
Indexar rostros detectados ~$0.18
Búsquedas / propagación de nombres ~$0.04
Transferencia S3 → Rekognition ~$0.016
Total por evento ~$0.30

Con Profesional (S/79 ≈ $21 USD): costo AWS = 1.4% del ingreso.


❓ Preguntas Frecuentes

¿Los invitados saben que sus caras están siendo analizadas?

El organizador debe informar a sus invitados si activa esta función. Recomendamos mencionarlo en la descripción del evento.

¿Qué pasa con los datos cuando vence el evento?

Todos los datos de reconocimiento facial (rostros indexados, colección) se eliminan automáticamente cuando el evento vence.

¿Funciona si el invitado cambió de look?

Depende del cambio. Cambios de peinado o barba pueden afectar la precisión. El sistema usa múltiples puntos del rostro para comparar.

¿Puedo desactivarlo después de activarlo?

Sí, en cualquier momento. Al desactivarlo, las búsquedas dejan de funcionar pero los datos se mantienen hasta que vence el evento.

¿Cuántas búsquedas puede hacer un invitado?

No hay límite. Cada búsqueda cuesta ~$0.001 a Postea.la, lo cual es negligible.

¿Funciona con videos?

No, actualmente solo funciona con fotos estáticas.


🎯 Casos de uso ideales

Boda con 300 fotos y 150 invitados

  • Cada invitado puede encontrar sus fotos en segundos
  • El fotógrafo no necesita etiquetar manualmente
  • Los novios pueden crear álbumes personalizados por persona

Evento corporativo con 500 empleados

  • Cada empleado descarga solo las fotos donde sale
  • No hay saturación de fotos irrelevantes
  • Mejor experiencia que revisar todo el álbum

Cumpleaños o quinceañera

  • La cumpleañera encuentra todas las fotos donde aparece
  • Los padres encuentran sus fotos familiares fácilmente
  • Los grupos de amigos se organizan naturalmente