reelsx / README.md
salomonsky's picture
Upload 12 files
73dba3e verified
|
raw
history blame
5.91 kB
---
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
1. Sube un video con un rostro claro
2. Sube o genera un archivo de audio
3. Espera mientras se procesa el video
4. Descarga el resultado final
## Tecnologías
- Python
- Flask
- Wav2Lip
- FFmpeg
- OpenCV
## Créditos
Este proyecto utiliza [Wav2Lip](https://github.com/Rudrabha/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:
1. Seleccionar un video de YouTube como base
2. Generar una reacción de audio mediante texto a voz (TTS)
3. Animar una imagen facial para sincronizarla con el audio
4. 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
1. **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
2. **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/`
3. **Animación Facial**
- El usuario selecciona/sube una imagen facial
- `face_detection/` detecta y procesa el rostro
- `inference.py` genera la animación usando Wav2Lip
- La animación se guarda en `static/animations/`
4. **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 facial
- `download_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 YouTube
- `inference_preview()`: Genera preview del video
- `wav2lip_animate()`: Genera animación facial
- `cleanup_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:
1. **Video Base**
- Campo para URL de YouTube
- Visualización de thumbnail y título
- Selector de segmento de video
- Preview del video seleccionado
2. **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
3. **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
1. **Error de Detección Facial**
- Causa: Modelo SFD no cargado correctamente
- Solución: Verificar `s3fd.pth` en `face_detection/detection/sfd/`
2. **Error de Audio**
- Causa: Edge TTS no disponible
- Solución: Verificar conexión a internet
3. **Error de Video**
- Causa: URL de YouTube inválida
- Solución: Usar fallback de descarga