Para mais resultados, visite nossa página inicial
2024/10/18
: ❗ Atualizamos as versões dos transformers
e bibliotecas gradio
para evitar vulnerabilidades de segurança. Detalhes aqui.2024/08/29
: ? Atualizamos o instalador com um clique do Windows e oferecemos suporte a atualizações automáticas, consulte o changelog.2024/08/19
: ?️ Oferecemos suporte ao modo orientado por imagem e controle regional . Para obter detalhes, veja aqui .2024/08/06
: ? Oferecemos suporte à edição precisa de retratos na interface Gradio, inspirada no ComfyUI-AdvancedLivePortrait. Veja aqui .2024/08/05
: ? Os usuários do Windows agora podem baixar o instalador com um clique para o modo Humanos e o modo Animais agora! Para obter detalhes, veja aqui .2024/08/02
: ? Lançamos uma versão do modelo Animals , junto com diversas outras atualizações e melhorias. Confira os detalhes aqui !2024/07/25
: ? Os usuários do Windows agora podem baixar o pacote do HuggingFace. Basta descompactar e clicar duas vezes em run_windows.bat
para aproveitar!2024/07/24
: ? Oferecemos suporte à edição de pose para retratos de origem na interface do Gradio. Também reduzimos o limite de detecção padrão para aumentar o recall. Divirta-se!2024/07/19
: Oferecemos suporte à edição de vídeo em retrato (também conhecida como v2v) ! Mais para ver aqui.2024/07/17
: ? Oferecemos suporte para macOS com Apple Silicon, modificado do PR #143 de jeethu.2024/07/10
: ? Oferecemos suporte à concatenação de áudio e vídeo, ao corte automático de vídeo e à criação de modelos para proteger a privacidade. Mais para ver aqui.2024/07/09
: ? Lançamos o Espaço HuggingFace, graças à equipe HF e à Gradio!2024/07/04
: ? Lançamos a versão inicial do código de inferência e dos modelos. Atualizações contínuas, fique ligado!2024/07/04
: Lançamos a página inicial e o relatório técnico do arXiv. Este repositório, denominado LivePortrait , contém a implementação oficial do PyTorch de nosso artigo LivePortrait: Efficient Portrait Animation com Stitching and Retargeting Control. Estamos atualizando e melhorando ativamente este repositório. Se você encontrar algum bug ou tiver sugestões, seja bem-vindo para levantar questões ou enviar solicitações pull (PR)?
Observação
Certifique-se de que seu sistema tenha git
, conda
e FFmpeg
instalados. Para obter detalhes sobre a instalação do FFmpeg, veja como instalar o FFmpeg .
git clone https://github.com/KwaiVGI/LivePortrait
cd LivePortrait
# create env using conda
conda create -n LivePortrait python=3.10
conda activate LivePortrait
O X-Pose requer que a versão da sua torch
seja compatível com a versão CUDA.
Em primeiro lugar, verifique sua versão atual do CUDA:
nvcc -V # example versions: 11.1, 11.8, 12.1, etc.
Em seguida, instale a versão correspondente da tocha. Aqui estão exemplos para diferentes versões do CUDA. Visite o site oficial do PyTorch para obter comandos de instalação se sua versão CUDA não estiver listada:
# 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 : Em sistemas Windows, algumas versões superiores do CUDA (como 12.4, 12.6, etc.) podem levar a problemas desconhecidos. Você pode considerar fazer o downgrade do CUDA para a versão 11.8 para estabilidade. Veja o guia de downgrade de @dimitribarbot.
Por fim, instale as dependências restantes:
pip install -r requirements.txt
A dependência do X-Pose não oferece suporte ao macOS, portanto você pode pular sua instalação. Embora o modo Humanos funcione normalmente, o modo Animais não é compatível. Use o arquivo de requisitos fornecido para macOS com Apple Silicon:
# for macOS with Apple Silicon users
pip install -r requirements_macOS.txt
A maneira mais fácil de baixar os pesos pré-treinados é no HuggingFace:
# !pip install -U "huggingface_hub[cli]"
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude " *.git* " " README.md " " docs "
Se você não consegue acessar o Huggingface, você pode usar o hf-mirror para baixar:
# !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, você pode baixar todos os pesos pré-treinados do Google Drive ou Baidu Yun. Descompacte e coloque-os em ./pretrained_weights
.
Garantir que a estrutura do diretório seja igual ou contenha isto .
# 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
Se o script for executado com sucesso, você obterá um arquivo mp4 de saída chamado animations/s6--d0_concat.mp4
. Este arquivo inclui os seguintes resultados: vídeo de condução, imagem ou vídeo de entrada e resultado gerado.
Ou você pode alterar a entrada especificando os argumentos -s
e -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
O modo Animais é testado SOMENTE em Linux e Windows com GPU NVIDIA.
Você precisa primeiro construir um OP chamado MultiScaleDeformableAttention
, que é usado pelo X-Pose, uma estrutura geral de detecção de ponto-chave.
cd src/utils/dependencies/XPose/models/UniPose/ops
python setup.py build install
cd - # equal to cd ../../../../../../../
Então
python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching
Se o script for executado com sucesso, você obterá um arquivo mp4 de saída chamado animations/s39--wink_concat.mp4
.
Importante
Para usar seu próprio vídeo de direção, recomendamos :
--flag_crop_driving_video
. Abaixo está um caso de corte automático por --flag_crop_driving_video
:
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video
Se você achar que os resultados do corte automático não estão bons, você pode modificar as opções --scale_crop_driving_video
, --vy_ratio_crop_driving_video
para ajustar a escala e o deslocamento, ou fazê-lo manualmente.
Você também pode usar os arquivos de modelo de movimento gerados automaticamente que terminam em .pkl
para acelerar a inferência e proteger a privacidade , como:
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
Também disponibilizamos uma interface Gradio para uma melhor experiência, bastando rodar 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
Também fornecemos uma interface Gradio do modo animais, que só é testada em Linux com GPU NVIDIA:
python app_animals.py # animals mode ??
Você pode especificar os argumentos --server_port
, --share
, --server_name
para satisfazer suas necessidades!
Também fornecemos uma opção de aceleração --flag_do_torch_compile
. A inferência inicial desencadeia um processo de otimização (cerca de um minuto), tornando as inferências subsequentes 20-30% mais rápidas. Os ganhos de desempenho podem variar com diferentes versões do CUDA.
# enable torch.compile for faster inference
python app.py --flag_do_torch_compile
Nota : Este método não é compatível com Windows e macOS.
Ou experimente sem esforço no HuggingFace?
Também fornecemos um script para avaliar a velocidade de inferência de cada módulo:
# For NVIDIA GPU
python speed.py
Os resultados estão aqui .
Descubra os recursos inestimáveis contribuídos pela nossa comunidade para aprimorar sua experiência no LivePortrait.
Repo (classificado por carimbo de data/hora criado) | Descrição | Autor |
---|---|---|
AdvancedLivePortrait-WebUI | WebUI dedicado baseado em gradio iniciado em ComfyUI-AdvancedLivePortrait | @jhj0517 |
FacePoke | Um aplicativo de transformação de cabeça em tempo real, controlado pelo mouse! | @jbilcke-hf |
FaceFusion | FaceFusion 3.0 integra LivePortrait como processadores expression_restorer e face_editor . | @henryruhs |
sd-webui-retrato ao vivo | Extensão WebUI do LivePortrait, adicionando uma aba ao Stable Diffusion WebUI original para se beneficiar dos recursos do LivePortrait. | @dimitribarbot |
ComfyUI-LivePortraitKJ | Um nó ComfyUI para usar LivePortrait, com MediaPipe como alternativa ao Insightface. | @kijai |
ComfyUI-AdvancedLivePortrait | Um nó ComfyUI mais rápido com visualização em tempo real que inspirou muitas outras ferramentas e projetos desenvolvidos pela comunidade. | @PowerHouseMan |
comfyui-liveportrait | Um nó ComfyUI para usar LivePortrait, suportando multifaces, interpolação de expressão, etc., com um tutorial. | @shadowcz007 |
E tantas contribuições incríveis da nossa comunidade, muitas para listar todas elas?
Gostaríamos de agradecer aos contribuidores dos repositórios FOMM, Open Facevid2vid, SPADE, InsightFace e X-Pose, por suas pesquisas abertas e contribuições.
As tecnologias de animação de retratos apresentam riscos sociais, especialmente o potencial de uso indevido na criação de deepfakes. Para mitigar esses riscos, é crucial seguir diretrizes éticas e adotar práticas de uso responsável. Atualmente, os resultados sintetizados contêm artefatos visuais que podem ajudar na detecção de deepfakes. Observe que não assumimos qualquer responsabilidade legal pelo uso dos resultados gerados por este projeto.
Se você achar o LivePortrait útil para sua pesquisa, seja bem-vindo ao ? este repositório e cite nosso trabalho usando o seguinte 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]