Navegação do repositório

Lançamento de pesquisa Retratos humanos + de animais

LivePortrait: animação de retratos com controle de reenquadramento

Anime um retrato a partir de uma única imagem.

Um retrato de origem Movimento expressivo Fluxo de trabalho rápido
Experimentar o LivePortrait

Experimentar o fluxo de trabalho

Descreva o movimento do retrato que você deseja.

Pronto para começar

Experimente o fluxo de trabalho · sem instalação aqui · prompt incluído

Comece com um exemplo

Um toque

LivePortrait

Dê vida aos retratos.

Público

Navegação pelos arquivos do repositório

Implementação de pesquisa do LivePortrait

animação eficiente costura controle de retargeting fluxo de trabalho aberto

Kuaishou Technology · animação de retratos · fluxos de trabalho com imagens e vídeos

Três quadros de retrato expressivos mostrando um retrato clássico, uma pessoa pintada e uma mulher sorridente em uma composição semelhante à de um museu

Dê vida aos retratos com uma imagem de origem e uma direção de movimento escolhida.

🔥 Atualizações

  • 2025/06/01: 🌍 Ao longo do último ano, LivePortrait tornou-se uma solução eficiente de animação de retratos para pessoas, gatos e cães, usada em plataformas de vídeo, ferramentas criativas e fluxos de trabalho de pesquisa.
  • 2025/01/01: 🐶 Atualizamos o modelo Animals com dados de treinamento adicionais e renovamos os recursos de exemplo. Os detalhes estão disponíveis aqui.
  • 2024/10/18: ❗ As versões das dependências foram atualizadas para melhorar a segurança e a consistência da instalação. Consulte as notas de alteração.
  • 2024/08/29: 📦 O pacote para Windows foi atualizado com um processo de configuração mais simples e suporte a atualizações.
  • 2024/08/19: 🖼️ O modo orientado por imagem e o controle regional agora são compatíveis, permitindo uma direção mais precisa do retrato.
  • 2024/08/06: 🎨 A edição precisa de retratos foi adicionada à interface para um controle mais detalhado das expressões.
  • 2024/08/05: 📦 Usuários do Windows podem acessar o pacote de instalação com um clique para os modos Humans e Animals.
  • 2024/08/02: 😸 Um novo modelo Animals foi lançado com várias melhorias adicionais.
  • 2024/07/25: 📦 O pacote para download agora inclui um caminho de execução direto para usuários do Windows.
  • 2024/07/24: 🎨 A edição da pose dos retratos de origem foi adicionada, com um limiar de detecção padrão mais baixo.
  • 2024/07/19: ✨ A edição de vídeos de retrato, também conhecida como v2v, é compatível com fluxos de trabalho compatíveis.
  • 2024/07/17: 🍎 O suporte ao Apple Silicon foi adicionado ao fluxo de trabalho Humans.
  • 2024/07/10: 💪 São compatíveis a concatenação de áudio e vídeo, o recorte automático do vídeo de condução e a criação de modelos de movimento.
  • 2024/07/09: 🤗 Uma demonstração online foi lançada para experimentar o fluxo de trabalho sem configuração local.
  • 2024/07/04: 😊 O código inicial de inferência e os modelos foram disponibilizados para pesquisa e experimentação.
  • 2024/07/04: 🔥 A página inicial do projeto e o relatório técnico foram disponibilizados junto com a primeira implementação pública.

Introdução 📖

Este repositório, chamado LivePortrait, contém uma implementação oficial em PyTorch para animação eficiente de retratos com controle de junção e redirecionamento. O fluxo de trabalho transforma um retrato de origem em movimentos expressivos, mantendo a identidade original e a estrutura visual coerentes.

O LivePortrait está sendo aprimorado continuamente para pesquisa, exploração criativa e experimentos práticos de imagem para vídeo. Se você encontrar um problema ou tiver uma sugestão, use o fluxo de trabalho do projeto para compartilhá-la.

Primeiros passos 🏁

1. Clone o código e prepare o ambiente 🛠️

Observação

Certifique-se de que seu sistema tenha git, condae FFmpeg instalados antes de executar o fluxo de trabalho 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 usuários de Linux 🐧 ou Windows 🪟

A dependência X-Pose é necessária para o modo Animais. Verificar a versão do CUDA é opcional se você quiser executar apenas o modo Humanos.

Verifique suas versões do CUDA

Primeiro, verifique a versão do CUDA instalada:

nvcc -V  # example versions: 11.1, 11.8, 12.1, etc.

Em seguida, instale a versão correspondente do torch. Estes são exemplos de comandos:

# 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 fim, instale as dependências restantes:

pip install -r requirements.txt

Para usuários de macOS  com Apple Silicon

A dependência X-Pose não oferece suporte ao macOS, portanto, pode ser ignorada. O modo Humanos funciona normalmente, enquanto o modo Animais não é compatível com esta plataforma.

# for macOS with Apple Silicon users
pip install -r requirements_macOS.txt

2. Baixe os pesos pré-treinados 📥

A maneira mais fácil de baixar os pesos pré-treinados é usar o cliente de linha de comando do Hugging Face:

# !pip install -U "huggingface_hub[cli]"
huggingface-cli download KlingTeam/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"

Se o espelho principal estiver indisponível, use o 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, baixe o pacote completo de pesos nos recursos do projeto indicados pelo link e coloque os arquivos descompactados em ./pretrained_weights.

Certifique-se de que a estrutura de diretórios corresponda à organização esperada antes de iniciar a inferência.

3. Inferência 🚀

Uso rápido (humanos) 👤

# For Linux and Windows users
python inference.py

# For macOS users with Apple Silicon
PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py

Uma execução bem-sucedida produz um vídeo de saída chamado animations/s6--d0_concat.mp4. Ele combina o vídeo de condução, a imagem ou o vídeo de origem e o resultado gerado.

Exemplo de animação de retrato em três painéis com um rosto de referência, um retrato de origem e um resultado gerado sorridente

Você pode alterar a entrada especificando os argumentos source e 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

Uso rápido (animais) 🐱🐶

O modo para animais foi testado no Linux e no Windows com uma GPU NVIDIA.

Primeiro, compile a operação MultiScaleDeformableAttention e depois execute o script de inferência para animais:

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

Uma execução bem-sucedida produz animations/s39--wink_concat.mp4.

Retrato de um gato fofo em dois painéis, mostrando uma fonte neutra e uma expressão animada e vibrante

Recorte automático do vídeo de condução 📢📢📢

Importante

Para o seu próprio vídeo de condução, recomendamos:

  • Recortar para uma proporção de tela 1:1 ou ativar --flag_crop_driving_video.
  • Mantenha a área da cabeça em destaque e minimize o movimento dos ombros.
  • Use um rosto de frente com uma expressão neutra no primeiro quadro.

Veja abaixo um exemplo de recorte automático:

python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video

Ajuste --scale_crop_driving_video e --vy_ratio_crop_driving_video quando o recorte automático precisar de refinamento.

Criação de modelo de movimento

Modelos de movimento gerados automaticamente que terminam com .pkl podem acelerar a inferência e ajudar a proteger a privacidade do vídeo de origem:

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. Interface do Gradio 🤗

O projeto inclui uma interface Gradio para um fluxo de trabalho mais acessível:

# For Linux and Windows users
python app.py

# For macOS with Apple Silicon
PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py

O modo Animais tem uma interface separada e é testado no Linux com uma GPU NVIDIA:

python app_animals.py

Você pode especificar --server_port, --share, e --server_name conforme necessário.

O modo opcional --flag_do_torch_compile pode tornar as inferências posteriores mais rápidas após sua etapa inicial de otimização:

# enable torch.compile for faster inference
python app.py --flag_do_torch_compile

Observação: torch.compile não é compatível com Windows e macOS.

Ou experimente o fluxo de trabalho online por meio de LivePortrait 🤗

5. Avaliação da velocidade de inferência 🚀🚀🚀

Use o script de velocidade para avaliar o tempo de inferência de cada módulo:

# For NVIDIA GPU
python speed.py

As observações sobre as medições estão disponíveis nos recursos do projeto.

Recursos da comunidade 🤗

Descubra ferramentas e recursos de aprendizado contribuídos pela comunidade do LivePortrait.

Projetos desenvolvidos pela comunidade

RepositórioDescriçãoAutor / Links
AVTR-1Modelo de talking head conversacional em tempo real que utiliza condicionamento de áudio diádico e um renderizador de deformação de retratos no estilo do LivePortrait.@avaturn-live
ditto-talkingheadTalking head orientado por áudio em tempo real.ArXiv, Página inicial
FasterLivePortraitVersão mais rápida em tempo real usando TensorRT.@warmshao
AdvancedLivePortrait-WebUIWebUI dedicada baseada em Gradio, iniciada a partir de um fluxo de trabalho avançado de nós do LivePortrait.@jhj0517
FacePokeUm aplicativo de transformação da cabeça em tempo real controlado pelo cursor.@jbilcke-hf
FaceFusionO FaceFusion integra o LivePortrait como processadores de restauração de expressões e edição facial.@henryruhs
sd-webui-live-portraitExtensão de WebUI que adiciona recursos do LivePortrait a um fluxo de trabalho existente do Stable Diffusion.@dimitribarbot
ComfyUI-LivePortraitKJUm nó do ComfyUI que usa o MediaPipe como alternativa ao InsightFace.@kijai
ComfyUI-AdvancedLivePortraitUm nó mais rápido do ComfyUI com pré-visualização em tempo real que inspirou muitas ferramentas da comunidade.@PowerHouseMan
comfyui-liveportraitUm nó do ComfyUI compatível com múltiplos rostos e interpolação de expressões.@shadowcz007

Ambientes de teste, 🤗 HuggingFace Spaces e outros

Tutoriais em vídeo

E tantas outras contribuições atenciosas da comunidade continuam expandindo o ecossistema do LivePortrait 💖

Agradecimentos 💐

Agradecemos aos colaboradores do FOMM, Open Facevid2vid, SPADE, InsightFace, X-Pose e à comunidade mais ampla de pesquisa aberta por seu trabalho e suas contribuições.

Considerações éticas 🛡️

As tecnologias de animação de retratos envolvem riscos sociais, incluindo o possível uso indevido na criação de mídias enganosas. Use o fluxo de trabalho com responsabilidade, obtenha permissão para as imagens de origem e identifique claramente os resultados sintéticos ou editados quando apropriado. Os resultados sintetizados atuais podem conter artefatos visuais que podem ajudar na detecção. O projeto não assume responsabilidade legal pelos resultados gerados.

Citação 💖

Se o LivePortrait for útil para seu projeto ou pesquisa, cite o trabalho usando o seguinte BibTeX:

@article{liveportrait2024,
  title   = {LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control},
  author  = {LivePortrait Research Team},
  journal = {arXiv preprint},
  year    = {2024}
}

Vida longa à pesquisa aberta.

Contato 📧

Pesquisa do LivePortrait; perguntas e solicitações de colaboração podem começar pelo fluxo de trabalho do projeto.

Histórico de estrelas 🌟

Clique para ver o gráfico de estrelas

Gráfico de histórico de estrelas azul e verde gerado para o projeto LivePortrait

Comece a criar
Comece a criar