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

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.

Compartir este artículo