Implementación de investigación de LivePortrait
Kuaishou Technology · animación de retratos · flujos de trabajo de imágenes y vídeos
Da vida a los retratos con una imagen de origen y una dirección de movimiento elegida.
🔥 Actualizaciones
2025/06/01: 🌍 Durante el último año, LivePortrait se ha convertido en una solución eficiente de animación de retratos para personas, gatos y perros, utilizada en plataformas de vídeo, herramientas creativas y flujos de trabajo de investigación.2025/01/01: 🐶 Actualizamos el modelo Animals con datos de entrenamiento adicionales y renovamos los recursos de ejemplo. Los detalles están disponibles aquí.2024/10/18: ❗ Se actualizaron las versiones de las dependencias para mejorar la seguridad y la coherencia de la instalación. Consulta las notas de cambios.2024/08/29: 📦 El paquete para Windows se renovó con un proceso de configuración más sencillo y compatibilidad con actualizaciones.2024/08/19: 🖼️ Ahora se admiten el modo basado en imágenes y el control regional para dirigir los retratos con mayor precisión.2024/08/06: 🎨 Se añadió a la interfaz la edición precisa de retratos para un control más detallado de las expresiones.2024/08/05: 📦 Los usuarios de Windows pueden acceder al paquete de instalación con un clic para los modos Humans y Animals.2024/08/02: 😸 Llegó un nuevo modelo Animals con varias mejoras adicionales.2024/07/25: 📦 El paquete descargable ahora incluye una ruta de ejecución directa para usuarios de Windows.2024/07/24: 🎨 Se añadió la edición de poses para los retratos de origen, con un umbral de detección predeterminado más bajo.2024/07/19: ✨ La edición de vídeos de retratos, también conocida como v2v, es compatible con flujos de trabajo compatibles.2024/07/17: 🍎 Se añadió compatibilidad con Apple Silicon para el flujo de trabajo Humans.2024/07/10: 💪 Se admiten la concatenación de audio y vídeo, el recorte automático del vídeo guía y la creación de plantillas de movimiento.2024/07/09: 🤗 Se lanzó una demostración en línea para probar el flujo de trabajo sin configuración local.2024/07/04: 😊 El código de inferencia inicial y los modelos se publicaron para investigación y experimentación.2024/07/04: 🔥 La página de inicio del proyecto y el informe técnico se publicaron junto con la primera implementación pública.
Introducción 📖
Este repositorio, llamado LivePortrait, contiene una implementación oficial en PyTorch para la animación eficiente de retratos con control de unión y redireccionamiento. El flujo de trabajo transforma un retrato de origen en un movimiento expresivo, al tiempo que mantiene coherentes la identidad original y la estructura visual.
LivePortrait se mejora activamente para la investigación, la exploración creativa y los experimentos prácticos de imagen a video. Si encuentras un problema o tienes una sugerencia, utiliza el flujo de trabajo del proyecto para compartirla.
Primeros pasos 🏁
1. Clona el código y prepara el entorno 🛠️
Nota
Asegúrate de que tu sistema tenga git, conday FFmpeg instalados antes de ejecutar el flujo de trabajo local.
git clone https://github.com/KlingTeam/LivePortrait
cd LivePortrait
# create env using conda
conda create -n LivePortrait python=3.10
conda activate LivePortrait
Para usuarios de Linux 🐧 o Windows 🪟
La dependencia X-Pose es necesaria para el modo Animals. Comprobar la versión de CUDA es opcional si solo quieres ejecutar el modo Humans.
Comprueba tus versiones de CUDA
Primero comprueba la versión de CUDA instalada:
nvcc -V # example versions: 11.1, 11.8, 12.1, etc.
A continuación, instala la versión correspondiente de torch. Estos son comandos de ejemplo:
# for CUDA 11.1
pip install torch==1.10.1+cu111 torchvision==0.11.2 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
# for 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
# for 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
Por último, instala las dependencias restantes:
pip install -r requirements.txt
Para usuarios de macOS con Apple Silicon
La dependencia X-Pose no es compatible con macOS, por lo que se puede omitir. El modo Humans funciona con normalidad, mientras que el modo Animals no es compatible con esta plataforma.
# for macOS with Apple Silicon users
pip install -r requirements_macOS.txt
2. Descarga los pesos preentrenados 📥
La forma más sencilla de descargar los pesos preentrenados es mediante el cliente de línea de comandos de Hugging Face:
# !pip install -U "huggingface_hub[cli]"
huggingface-cli download KlingTeam/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
Si el espejo principal no está disponible, utiliza el endpoint alternativo:
# !pip install -U "huggingface_hub[cli]"
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download KlingTeam/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
Como alternativa, descarga el paquete completo de pesos desde los recursos enlazados del proyecto y coloca los archivos descomprimidos en ./pretrained_weights.
Asegúrate de que la estructura de directorios coincida con la disposición esperada antes de iniciar la inferencia.
3. Inferencia 🚀
Guía práctica rápida (humanos) 👤
# For Linux and Windows users
python inference.py
# For macOS users with Apple Silicon
PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py
Una ejecución exitosa produce un video de salida llamado animations/s6--d0_concat.mp4. Combina el video guía, la imagen o el video de origen y el resultado generado.
Puedes cambiar la entrada especificando los argumentos source y driving:
# source input is an image
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4
# source input is a video
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d0.mp4
# more options
python inference.py -h
Guía práctica rápida (animales) 🐱🐶
El modo para animales se ha probado en Linux y Windows con una GPU NVIDIA.
Primero compila la operación MultiScaleDeformableAttention , luego ejecuta el script de inferencia para animales:
cd src/utils/dependencies/XPose/models/UniPose/ops
python setup.py build install
cd -
python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching
Una ejecución exitosa produce animations/s39--wink_concat.mp4.
Recorte automático del video guía 📢📢📢
Importante
Para tu propio video guía, recomendamos:
- Recortar a una relación de aspecto de 1:1 , o activar
--flag_crop_driving_video. - Mantén el área de la cabeza destacada y minimiza el movimiento de los hombros.
- Usa un rostro de frente con una expresión neutra en el primer fotograma.
A continuación se muestra un ejemplo de 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 y --vy_ratio_crop_driving_video cuando el recorte automático necesite ajustes adicionales.
Creación de plantillas de movimiento
Las plantillas de movimiento generadas automáticamente que terminan en .pkl pueden acelerar la inferencia y ayudar a proteger la privacidad del video de origen:
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d5.pkl # portrait animation
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d5.pkl # portrait video editing
4. Interfaz de Gradio 🤗
El proyecto incluye una interfaz de Gradio para un flujo de trabajo más accesible:
# For Linux and Windows users
python app.py
# For macOS with Apple Silicon
PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py
El modo Animales tiene una interfaz independiente y se prueba en Linux con una GPU NVIDIA:
python app_animals.py
Puedes especificar --server_port, --share, y --server_name según sea necesario.
El modo opcional --flag_do_torch_compile puede hacer que las inferencias posteriores sean más rápidas después de su paso de optimización inicial:
# enable torch.compile for faster inference
python app.py --flag_do_torch_compile
Nota: torch.compile no es compatible con Windows ni macOS.
O prueba el flujo de trabajo en línea a través de LivePortrait 🤗
5. Evaluación de la velocidad de inferencia 🚀🚀🚀
Usa el script de velocidad para evaluar el tiempo de inferencia de cada módulo:
# For NVIDIA GPU
python speed.py
Las notas de medición están disponibles en los recursos del proyecto.
Recursos de la comunidad 🤗
Descubre herramientas y recursos de aprendizaje aportados por la comunidad de LivePortrait.
Proyectos desarrollados por la comunidad
| Repositorio | Descripción | Autor / Enlaces |
|---|---|---|
| AVTR-1 | Modelo de cabezas parlantes conversacionales en tiempo real que utiliza condicionamiento de audio diádico y un renderizador de deformación de retratos al estilo de LivePortrait. | @avaturn-live |
| ditto-talkinghead | Cabeza parlante en tiempo real impulsada por audio. | ArXiv, Página de inicio |
| FasterLivePortrait | Versión más rápida en tiempo real mediante TensorRT. | @warmshao |
| AdvancedLivePortrait-WebUI | WebUI dedicada basada en Gradio, creada a partir de un flujo de trabajo avanzado de nodos de LivePortrait. | @jhj0517 |
| FacePoke | Aplicación de transformación de la cabeza en tiempo real controlada por el cursor. | @jbilcke-hf |
| FaceFusion | FaceFusion integra LivePortrait como procesadores de restauración de expresiones y edición facial. | @henryruhs |
| sd-webui-live-portrait | Extensión de WebUI que añade funciones de LivePortrait a un flujo de trabajo existente de Stable Diffusion. | @dimitribarbot |
| ComfyUI-LivePortraitKJ | Nodo de ComfyUI que utiliza MediaPipe como alternativa a InsightFace. | @kijai |
| ComfyUI-AdvancedLivePortrait | Nodo de ComfyUI más rápido, con vista previa en tiempo real, que inspiró muchas herramientas de la comunidad. | @PowerHouseMan |
| comfyui-liveportrait | Nodo de ComfyUI compatible con múltiples rostros e interpolación de expresiones. | @shadowcz007 |
Playgrounds, 🤗 HuggingFace Spaces y otros
- Espacio FacePoke
- Espacio del editor de expresiones
- Editor de expresiones en Replicate
- Demostración de control facial en tiempo real en FAL
- Playground de Replicate
- Nuke puede usar LivePortrait mediante un nodo de la comunidad; los detalles están disponibles aquí.
- LivePortrait también está disponible a través de Poe.
Tutoriales en vídeo
- Flujo de trabajo de LivePortrait de vídeo a vídeo por @curiousrefuge
- Tutorial de Google Colab por @Planet Ai
- Lectura del artículo por @TwoMinutePapers
- LivePortrait avanzado para ComfyUI por TutoView
- Exploración de LivePortrait y Una inmersión profunda en LivePortrait por TheoreticallyMedia
- Tutorial práctico de LivePortrait por @AI Search
- Tutorial de ComfyUI por @Sebastian Kamph
- Un tutorial en BiliBili
Y muchas otras contribuciones reflexivas de la comunidad continúan expandiendo el ecosistema de LivePortrait 💖
Agradecimientos 💐
Agradecemos a los colaboradores de FOMM, Open Facevid2vid, SPADE, InsightFace, X-Pose y de la comunidad de investigación abierta en general por su trabajo y sus contribuciones.
Consideraciones éticas 🛡️
Las tecnologías de animación de retratos conllevan riesgos sociales, incluido el posible uso indebido para crear contenido engañoso. Utiliza el flujo de trabajo de forma responsable, obtén permiso para las imágenes de origen e identifica claramente los resultados sintéticos o editados cuando corresponda. Los resultados sintetizados actuales pueden contener artefactos visuales que podrían ayudar a detectarlos. El proyecto no asume responsabilidad legal por los resultados generados.
Citación 💖
Si LivePortrait es útil para tu proyecto o investigación, cita el trabajo utilizando el siguiente BibTeX:
@article{liveportrait2024,
title = {LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control},
author = {LivePortrait Research Team},
journal = {arXiv preprint},
year = {2024}
}
Larga vida a la investigación abierta.
Contacto 📧
LivePortrait Research; las preguntas y solicitudes de colaboración pueden comenzar a través del flujo de trabajo del proyecto.
Historial de estrellas 🌟
Haz clic para ver el gráfico de estrellas