Spaces:
Runtime error
Runtime error
metadata
title: ReelsX
emoji: 🎬
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false
ReelsX - Generador de Videos con Wav2Lip
Esta aplicación permite generar videos sincronizando el audio con los labios de una persona utilizando la tecnología Wav2Lip.
Características
- Generación de videos con sincronización labial
- Soporte para múltiples formatos de entrada de audio y video
- Interfaz web intuitiva
- Procesamiento asíncrono de videos
Uso
- Sube un video con un rostro claro
- Sube o genera un archivo de audio
- Espera mientras se procesa el video
- Descarga el resultado final
Tecnologías
- Python
- Flask
- Wav2Lip
- FFmpeg
- OpenCV
Créditos
Este proyecto utiliza Wav2Lip para la sincronización labial.
Generador de Videos de Reacción
Este proyecto es una aplicación web que permite crear videos de reacción combinando videos de YouTube con animaciones faciales generadas mediante inteligencia artificial.
Propósito
La aplicación permite a los usuarios:
- Seleccionar un video de YouTube como base
- Generar una reacción de audio mediante texto a voz (TTS)
- Animar una imagen facial para sincronizarla con el audio
- Combinar todo en un video final de reacción
Estructura del Proyecto
reels/
├── app.py # Aplicación principal Flask
├── inference.py # Script de inferencia Wav2Lip
├── requirements.txt # Dependencias del proyecto
├── static/ # Archivos estáticos
│ ├── animations/ # Animaciones generadas
│ ├── female.png # Avatar femenino predeterminado
│ └── male.png # Avatar masculino predeterminado
├── templates/
│ └── index.html # Interfaz de usuario
├── face_detection/ # Módulo de detección facial
│ ├── api.py # API de detección facial
│ └── detection/
│ └── sfd/ # Detector SFD
│ ├── net_s3fd.py # Arquitectura de red
│ ├── s3fd.py # Implementación del modelo
│ ├── sfd_detector.py # Clase detector
│ └── s3fd.pth # Pesos del modelo
├── utils/
│ ├── tts_processing.py # Procesamiento de texto a voz
│ └── video_processing.py # Procesamiento de video
├── checkpoints/ # Modelos pre-entrenados
│ └── wav2lip_gan.pth # Modelo Wav2Lip
└── temp_audio/ # Archivos temporales de audio
Flujo de Datos
Entrada de Video
- El usuario proporciona una URL de YouTube
video_processing.py
descarga y procesa el video- Se permite seleccionar un segmento específico
Generación de Audio
- El usuario escribe texto y selecciona una voz
tts_processing.py
genera el audio usando Edge TTS- El audio se guarda temporalmente en
temp_audio/
Animación Facial
- El usuario selecciona/sube una imagen facial
face_detection/
detecta y procesa el rostroinference.py
genera la animación usando Wav2Lip- La animación se guarda en
static/animations/
Combinación Final
- Se combina el video base con la animación
- El resultado se guarda y se ofrece para descarga
Módulos Principales
face_detection/
- api.py: Interfaz principal de detección facial
FaceAlignment
: Clase para alineación y detección facialdownload_sfd_model()
: Descarga el modelo SFD si no existe
utils/
tts_processing.py
generate_tts_with_fallback()
: Genera audio desde texto
video_processing.py
download_video_with_fallback()
: Descarga videos de YouTubeinference_preview()
: Genera preview del videowav2lip_animate()
: Genera animación facialcleanup_old_files()
: Limpia archivos temporales
Modelos
SFD (S³FD)
- Detector facial usado para preprocesamiento
- Archivos:
net_s3fd.py
,sfd_detector.py
Wav2Lip
- Modelo principal para sincronización labial
- Checkpoint:
wav2lip_gan.pth
Interfaz de Usuario
La interfaz web (templates/index.html
) está dividida en tres secciones:
Video Base
- Campo para URL de YouTube
- Visualización de thumbnail y título
- Selector de segmento de video
- Preview del video seleccionado
Reacción
- Editor de texto para la reacción
- Selector de voz TTS
- Preview del audio generado
- Selector de imagen facial
- Preview de la animación generada
Generación Final
- Botón para combinar videos
- Barra de progreso
- Opciones de descarga
Dependencias Principales
- Flask: Servidor web
- PyTorch: Modelos de IA
- OpenCV: Procesamiento de imagen
- Edge-TTS: Generación de voz
- yt-dlp: Descarga de videos
- ffmpeg: Procesamiento de video
Manejo de Errores
El sistema incluye:
- Verificación de archivos generados
- Limpieza automática de temporales
- Fallbacks para descargas y procesamiento
- Logging detallado de operaciones
Notas de Desarrollo
- La aplicación usa CUDA si está disponible
- Los archivos temporales se limpian cada 24 horas
- Los modelos se descargan automáticamente
- Se incluye soporte para formatos WebM con alpha
Problemas Conocidos y Soluciones
Error de Detección Facial
- Causa: Modelo SFD no cargado correctamente
- Solución: Verificar
s3fd.pth
enface_detection/detection/sfd/
Error de Audio
- Causa: Edge TTS no disponible
- Solución: Verificar conexión a internet
Error de Video
- Causa: URL de YouTube inválida
- Solución: Usar fallback de descarga