reelsx / README.md
salomonsky's picture
Upload 12 files
73dba3e verified
|
raw
history blame
5.91 kB
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

  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 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