Dale vida a cualquier retrato: Llega LivePortrait, tu animador IA de código abierto.

Anima retratos estáticos de humanos, gatos y perros con LivePortrait, una implementación de código abierto en PyTorch. Impulsado por video, imágenes o plantillas, ofrece un control detallado y una interfaz amigable en Gradio.

LivePortrait

Descripción del Proyecto

LivePortrait es una implementación de PyTorch de código abierto para animaciones eficientes de retratos. Permite animar retratos estáticos (de humanos, gatos y perros) utilizando un video guía o una plantilla de movimiento, centrándose en el control de "stitching" y "retargeting" para darles vida. El proyecto es activamente actualizado y mejorado por investigadores de Kuaishou Technology, la Universidad de Ciencia y Tecnología de China y la Universidad de Fudan.

GIF de demostración de LivePortrait

Instrucciones de Uso

Configuración del Entorno

  1. Clona el repositorio:
    git clone https://github.com/KwaiVGI/LivePortrait
    cd LivePortrait
    
  2. Crea y activa un entorno Conda:
    conda create -n LivePortrait python=3.10
    conda activate LivePortrait
    
  3. Instala PyTorch (compatible con CUDA para Linux/Windows): Primero, verifica tu versión de CUDA: nvcc -V. Luego, instala la versión correspondiente de PyTorch.
    • Para CUDA 11.8:
      pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu118
      
    • Para CUDA 12.1:
      pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu121
      
    • Para otras versiones de CUDA, consulta el sitio web oficial de PyTorch.
    • Nota para usuarios de Windows: Bajar la versión de CUDA a 11.8 podría resolver problemas con versiones más recientes de CUDA.
  4. Instala las dependencias restantes:
    pip install -r requirements.txt
    
    • Para macOS con Apple Silicon:
      pip install -r requirements_macOS.txt
      
      (La dependencia X-Pose se omite, el modo Animales no es compatible).

Descargar Pesos Pre-entrenados

  • Desde HuggingFace (recomendado):
    # !pip install -U "huggingface_hub[cli]"
    huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
    
  • Usando hf-mirror (si HuggingFace es inaccesible):
    # !pip install -U "huggingface_hub[cli]"
    export HF_ENDPOINT=https://hf-mirror.com
    huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
    
  • Alternativamente, descarga desde Google Drive o Baidu Yun y colócalos en ./pretrained_weights.

Inferencia

Modo Humanos

  • Ejecutar con entradas predeterminadas:
    python inference.py
    
    (Para macOS con Apple Silicon, usa PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py)
  • Especificar entradas de origen y guía:
    # La fuente es una imagen
    python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4
    # La fuente es un video
    python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d0.mp4
    

Modo Animales (solo Linux/Windows con GPU NVIDIA)

  1. Construir MultiScaleDeformableAttention OP:
    cd src/utils/dependencies/XPose/models/UniPose/ops
    python setup.py build install
    cd -
    
  2. Ejecutar inferencia:
    python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching
    
    Ejemplo de Inferencia de Animales

Recorte Automático de Video Guía

  • Activar el recorte automático:
    python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video
    
    (Ajusta --scale_crop_driving_video o --vy_ratio_crop_driving_video para obtener mejores resultados.)

Creación de Plantillas de Movimiento

  • Usa archivos .pkl generados automáticamente para una inferencia más rápida y protección de la privacidad:
    python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d5.pkl # animación de retrato
    python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d5.pkl # edición de video de retrato
    

Interfaz Gradio

  • Modo Humanos:
    # Para Linux y Windows
    python app.py
    # Para macOS con Apple Silicon
    PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py
    
  • Modo Animales (solo Linux con GPU NVIDIA):
    python app_animals.py
    
  • Aceleración: Usa --flag_do_torch_compile para obtener inferencias posteriores un 20-30% más rápidas (no compatible con Windows/macOS).
    python app.py --flag_do_torch_compile
    
  • También hay disponible un espacio en línea en HuggingFace.

Características Clave

  • Animación Eficiente de Retratos: Anima imágenes estáticas de humanos, gatos y perros.
  • Control de "Stitching" y "Retargeting": Ofrece un control preciso sobre el proceso de animación.
  • Diversas Entradas Guía: Admite movimientos guía desde video, imágenes o plantillas de movimiento pregeneradas (archivos .pkl).
  • Edición de Video a Video (v2v): Soporte para editar videos de retratos existentes.
  • Interfaz Gradio: Interfaz web amigable para facilitar el uso y la edición precisa de retratos.
  • Control Regional y Modo Impulsado por Imagen: Ofrece control avanzado y diferentes opciones de guía.
  • Edición de Pose: Permite editar las poses del retrato de origen dentro de la interfaz Gradio.
  • Recorte Automático: Recorta automáticamente los videos guía a una relación de aspecto 1:1, centrándose en la cabeza.
  • Protección de la Privacidad: Las plantillas de movimiento se pueden usar para proteger la privacidad de los sujetos en los videos guía.
  • Compatibilidad Multiplataforma: Compatible con Linux, Windows (con GPU NVIDIA) y macOS con Apple Silicon.
  • Rendimiento Optimizado: Incluye una opción para torch.compile para acelerar la inferencia.

Usuarios Previstos

  • Creadores de Contenido de Video: Para animar retratos en sus videos.
  • Animadores: Para generar rápidamente animaciones faciales de personajes.
  • Investigadores y Desarrolladores: Como base para desarrollos futuros en animación de retratos, generación de imágenes/video y animación facial.
  • Entusiastas en General: Personas interesadas en dar vida a sus fotos o experimentar con animación por IA.
  • Grandes Plataformas de Video: Ya adoptado por plataformas como Kuaishou, Douyin, Jianying y WeChat Channels.

Enlaces del Proyecto

Escenarios de Aplicación

  • Contenido para Redes Sociales: Creación de atractivas fotos de perfil animadas o clips de video cortos a partir de imágenes estáticas.
  • Marketing y Publicidad: Generación de personajes animados o portavoces a partir de imágenes estáticas.
  • Desarrollo de Cine y Videojuegos: Prototipado rápido de animaciones de personajes para expresiones faciales.
  • Avatares Virtuales y Humanos Digitales: Animación de avatares estáticos para reuniones virtuales o simulaciones.
  • Uso Personal: Dar vida a viejas fotos familiares o imágenes de mascotas queridas.