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.

Instrucciones de Uso
Configuración del Entorno
- Clona el repositorio:
git clone https://github.com/KwaiVGI/LivePortrait cd LivePortrait - Crea y activa un entorno Conda:
conda create -n LivePortrait python=3.10 conda activate LivePortrait - 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.
- Para CUDA 11.8:
- Instala las dependencias restantes:
pip install -r requirements.txt- Para macOS con Apple Silicon:
(La dependencia X-Pose se omite, el modo Animales no es compatible).pip install -r requirements_macOS.txt
- Para macOS con Apple Silicon:
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:
(Para macOS con Apple Silicon, usapython inference.pyPYTORCH_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)
- Construir MultiScaleDeformableAttention OP:
cd src/utils/dependencies/XPose/models/UniPose/ops python setup.py build install cd - - 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
Recorte Automático de Video Guía
- Activar el recorte automático:
(Ajustapython inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video--scale_crop_driving_videoo--vy_ratio_crop_driving_videopara obtener mejores resultados.)
Creación de Plantillas de Movimiento
- Usa archivos
.pklgenerados 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_compilepara 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.compilepara 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
- Repositorio GitHub: https://github.com/KwaiVGI/LivePortrait
- Página Principal del Proyecto: liveportrait.github.io
- Demo en Línea de HuggingFace: https://huggingface.co/spaces/KwaiVGI/LivePortrait
- Artículo arXiv: arXiv:2407.03168
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.