Para obtener más resultados, visite nuestra página de inicio.
2024/10/18
: ❗ Hemos actualizado las versiones de los transformers
y librerías gradio
para evitar vulnerabilidades de seguridad. Detalles aquí.2024/08/29
: ? Actualizamos el instalador de Windows con un solo clic y admitimos actualizaciones automáticas, consulte el registro de cambios.2024/08/19
: ?️ Admitimos el modo basado en imágenes y el control regional . Para más detalles, consulte aquí .2024/08/06
: ? Admitimos la edición de retratos precisa en la interfaz de Gradio, inspirada en ComfyUI-AdvancedLivePortrait. Ver aquí .2024/08/05
: ? ¡Los usuarios de Windows ahora pueden descargar el instalador con un solo clic para el modo Humanos y el modo Animales ! Para más detalles, consulte aquí .2024/08/02
: ? Lanzamos una versión del modelo Animals , junto con varias otras actualizaciones y mejoras. ¡Mira los detalles aquí !2024/07/25
: ? Los usuarios de Windows ahora pueden descargar el paquete desde HuggingFace. ¡Simplemente descomprima y haga doble clic en run_windows.bat
para disfrutar!2024/07/24
: ? Admitimos la edición de poses para retratos de origen en la interfaz de Gradio. También hemos reducido el umbral de detección predeterminado para aumentar la recuperación. ¡Divertirse!2024/07/19
: ¡Admitimos la edición de vídeo vertical (también conocida como v2v) ! Más para ver aquí.2024/07/17
: ? Admitimos macOS con Apple Silicon, modificado a partir del PR #143 de jeethu.2024/07/10
: ? Admitimos la concatenación de audio y video, el recorte automático de video y la creación de plantillas para proteger la privacidad. Más para ver aquí.2024/07/09
: ? ¡Lanzamos el Espacio HuggingFace, gracias al equipo de HF y Gradio!2024/07/04
: ? Publicamos la versión inicial del código y los modelos de inferencia. Actualizaciones continuas, ¡estad atentos!2024/07/04
: Publicamos la página de inicio y el informe técnico sobre arXiv. Este repositorio, llamado LivePortrait , contiene la implementación oficial de PyTorch de nuestro artículo LivePortrait: animación de retratos eficiente con control de unión y retargeting. Estamos actualizando y mejorando activamente este repositorio. Si encuentra algún error o tiene sugerencias, bienvenido a plantear problemas o enviar solicitudes de extracción (PR).
Nota
Asegúrese de que su sistema tenga instalados git
, conda
y FFmpeg
. Para obtener detalles sobre la instalación de FFmpeg, consulte cómo instalar FFmpeg .
git clone https://github.com/KwaiVGI/LivePortrait
cd LivePortrait
# create env using conda
conda create -n LivePortrait python=3.10
conda activate LivePortrait
X-Pose requiere que la versión de su torch
sea compatible con la versión CUDA.
En primer lugar, verifique su versión actual de CUDA:
nvcc -V # example versions: 11.1, 11.8, 12.1, etc.
Luego, instale la versión de antorcha correspondiente. A continuación se muestran ejemplos de diferentes versiones de CUDA. Visite el sitio web oficial de PyTorch para obtener comandos de instalación si su versión de CUDA no aparece en la lista:
# 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
# ...
Nota : en sistemas Windows, algunas versiones superiores de CUDA (como 12.4, 12.6, etc.) pueden provocar problemas desconocidos. Puede considerar degradar CUDA a la versión 11.8 para mayor estabilidad. Consulte la guía de degradación de @dimitribarbot.
Finalmente, instale las dependencias restantes:
pip install -r requirements.txt
La dependencia X-Pose no es compatible con macOS, por lo que puedes omitir su instalación. Si bien el modo Humanos funciona como de costumbre, el modo Animales no es compatible. Utilice el archivo de requisitos proporcionado para macOS con Apple Silicon:
# for macOS with Apple Silicon users
pip install -r requirements_macOS.txt
La forma más sencilla de descargar los pesos previamente entrenados es desde HuggingFace:
# !pip install -U "huggingface_hub[cli]"
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude " *.git* " " README.md " " docs "
Si no puede acceder a Huggingface, puede utilizar hf-mirror para descargar:
# !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, puede descargar todos los pesos previamente entrenados desde Google Drive o Baidu Yun. Descomprímalos y colóquelos en ./pretrained_weights
.
Garantizar que la estructura del directorio sea como o contenga esto .
# For Linux and Windows users
python inference.py
# For macOS users with Apple Silicon (Intel is not tested). NOTE: this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py
Si el script se ejecuta correctamente, obtendrá un archivo mp4 de salida llamado animations/s6--d0_concat.mp4
. Este archivo incluye los siguientes resultados: vídeo de conducción, imagen o vídeo de entrada y resultado generado.
O puede cambiar la entrada especificando los argumentos -s
y -d
:
# 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 to see
python inference.py -h
El modo animales SÓLO se prueba en Linux y Windows con GPU NVIDIA.
Primero debe crear un OP llamado MultiScaleDeformableAttention
, que es utilizado por X-Pose, un marco general de detección de puntos clave.
cd src/utils/dependencies/XPose/models/UniPose/ops
python setup.py build install
cd - # equal to cd ../../../../../../../
Entonces
python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching
Si el script se ejecuta correctamente, obtendrá un archivo mp4 de salida llamado animations/s39--wink_concat.mp4
.
Importante
Para utilizar su propio vídeo de conducción, le recomendamos :
--flag_crop_driving_video
. A continuación se muestra un caso de recorte automático de --flag_crop_driving_video
:
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video
Si encuentra que los resultados del recorte automático no son buenos, puede modificar las opciones --scale_crop_driving_video
, --vy_ratio_crop_driving_video
para ajustar la escala y el desplazamiento, o hacerlo manualmente.
También puede utilizar los archivos de plantilla de movimiento generados automáticamente que terminan en .pkl
para acelerar la inferencia y proteger la privacidad , como por ejemplo:
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
También proporcionamos una interfaz Gradio para una mejor experiencia, simplemente ejecutada por:
# For Linux and Windows users (and macOS with Intel??)
python app.py # humans mode
# For macOS with Apple Silicon users, Intel not supported, this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py # humans mode
También proporcionamos una interfaz Gradio del modo animales, que solo se prueba en Linux con GPU NVIDIA:
python app_animals.py # animals mode ??
¡Puede especificar los argumentos --server_port
, --share
, --server_name
para satisfacer sus necesidades!
También proporcionamos una opción de aceleración --flag_do_torch_compile
. La primera inferencia desencadena un proceso de optimización (aproximadamente un minuto), lo que hace que las inferencias posteriores sean entre un 20 y un 30 % más rápidas. Las ganancias de rendimiento pueden variar con las diferentes versiones de CUDA.
# enable torch.compile for faster inference
python app.py --flag_do_torch_compile
Nota : este método no es compatible con Windows y macOS.
¿O probarlo sin esfuerzo en HuggingFace?
También proporcionamos un script para evaluar la velocidad de inferencia de cada módulo:
# For NVIDIA GPU
python speed.py
Los resultados están aquí .
Descubra los invaluables recursos aportados por nuestra comunidad para mejorar su experiencia LivePortrait.
Repo (ordenado por marca de tiempo creada) | Descripción | Autor |
---|---|---|
AdvancedLivePortrait-WebUI | WebUI dedicada basada en gradio iniciada desde ComfyUI-AdvancedLivePortrait | @jhj0517 |
carapoke | ¡Una aplicación de transformación de cabeza en tiempo real, controlada por el mouse! | @jbilcke-hf |
carafusión | FaceFusion 3.0 integra LivePortrait como procesadores expression_restorer y face_editor . | @henryruhs |
sd-webui-retrato-en vivo | Extensión WebUI de LivePortrait, que agrega un tab a la WebUI original de Stable Diffusion para beneficiarse de las funciones de LivePortrait. | @dimitribarbot |
ComfyUI-LivePortraitKJ | Un nodo ComfyUI para usar LivePortrait, con MediaPipe como alternativa a Insightface. | @kijai |
ComfyUI-AdvancedLivePortrait | Un nodo ComfyUI más rápido con vista previa en tiempo real que ha inspirado muchas otras herramientas y proyectos desarrollados por la comunidad. | @PowerHouseMan |
cómodoui-liveportrait | Un nodo ComfyUI para usar LivePortrait, que admite múltiples caras, interpolación de expresiones, etc., con un tutorial. | @sombracz007 |
Y MUCHAS contribuciones increíbles de nuestra comunidad, ¿demasiadas para enumerarlas todas?
Nos gustaría agradecer a los contribuyentes de los repositorios FOMM, Open Facevid2vid, SPADE, InsightFace y X-Pose por su investigación abierta y sus contribuciones.
Las tecnologías de animación de retratos conllevan riesgos sociales, en particular el potencial de uso indebido en la creación de deepfakes. Para mitigar estos riesgos, es fundamental seguir pautas éticas y adoptar prácticas de uso responsable. En la actualidad, los resultados sintetizados contienen artefactos visuales que pueden ayudar a detectar deepfakes. Tenga en cuenta que no asumimos ninguna responsabilidad legal por el uso de los resultados generados por este proyecto.
Si encuentra útil LivePortrait para su investigación, bienvenido a ? este repositorio y cite nuestro trabajo usando el siguiente BibTeX:
@article { guo2024liveportrait ,
title = { LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control } ,
author = { Guo, Jianzhu and Zhang, Dingyun and Liu, Xiaoqiang and Zhong, Zhizhou and Zhang, Yuan and Wan, Pengfei and Zhang, Di } ,
journal = { arXiv preprint arXiv:2407.03168 } ,
year = { 2024 }
}
Jianzhu Guo (郭建珠) ; [email protected]