ComfyUI  >  Fluxos de Trabalho  >  LivePortrait | Anima Retratos | Img2Vid

LivePortrait | Anima Retratos | Img2Vid

Este fluxo de trabalho ComfyUI LivePortrait Img2Vid traz imagens de retratos estáticos à vida ao integrar o eficiente framework LivePortrait. Ele permite criar vídeos animados altamente realistas com controle total sobre expressões faciais, movimentos da cabeça e detalhes finos como olhos e boca.

ComfyUI LivePortrait Fluxo de Trabalho

ComfyUI LivePortrait Workflow
Deseja executar este fluxo de trabalho?
  • Fluxos de trabalho totalmente operacionais
  • Sem nós ou modelos ausentes
  • Nenhuma configuração manual necessária
  • Apresenta visuais impressionantes

ComfyUI LivePortrait Exemplos

ComfyUI LivePortrait Descrição

O que é LivePortrait?

LivePortrait é um framework eficiente de animação de retratos desenvolvido pela Kuaishou Technology que visa sintetizar vídeos realistas a partir de uma única imagem de origem. Ele usa a imagem de origem como referência de aparência e deriva movimento (expressões faciais e pose da cabeça) de um vídeo de condução, áudio, texto ou geração.

Ao contrário dos métodos de difusão convencionais, o LivePortrait explora e estende um framework baseado em pontos-chave implícitos para equilibrar efetivamente a eficiência computacional e a controlabilidade. Ele se concentra em melhor generalização, controlabilidade e eficiência para uso prático. O LivePortrait tem alta qualidade de geração, mesmo em comparação com métodos de difusão, sendo extremamente rápido - cerca de 12,8ms por frame em uma GPU RTX 4090 com PyTorch.

Para mais detalhes, visite

Como o LivePortrait Funciona

Em um nível alto, o LivePortrait pega uma imagem de origem e um vídeo de condução como entradas. Ele extrai a aparência da imagem de origem e o movimento do vídeo de condução. Estes são então combinados usando módulos de deformação e geração para sintetizar um vídeo de retrato animado que retém a identidade da imagem de origem mas segue o movimento e as expressões do vídeo de condução.

Os principais componentes no LivePortrait são:

  1. Extrator de Características de Aparência: Codifica a identidade e informações de aparência da imagem de origem.
  2. Extrator de Movimento: Extrai características de movimento (pontos-chave faciais) dos frames do vídeo de condução.
  3. Módulo de Deformação: Usa o movimento extraído para deformar as características da imagem de origem, alinhando-as à pose e expressão do vídeo de condução.
  4. Gerador de Imagem: Pega as características deformadas e sintetiza o frame animado final fotorrealista.
  5. Módulo de Costura e Retargeting: Opcionalmente costura o retrato gerado de volta na imagem original e permite controlar regiões faciais específicas como olhos e boca.

Esses módulos são projetados de forma eficiente e trabalham juntos para permitir animações LivePortrait de alta qualidade e controláveis.

Como Usar o ComfyUI LivePortrait

Graças ao , criar animações de retratos realistas no ComfyUI agora é mais fácil. A seguir está uma divisão dos principais componentes e parâmetros do fluxo de trabalho ComfyUI LivePortrait.

Principais Etapas do Fluxo de Trabalho ComfyUI LivePortrait Img2Vid

1. Carregar os Modelos Live Portrait

  • Adicione o nó "DownloadAndLoadLivePortraitModels"
  • Defina a precisão para auto ou fp16 para melhor desempenho

2. Escolher o Detector de Rostos para LivePortrait

  • Você tem a opção entre os nós "LivePortraitLoadCropper" (InsightFace) e "LivePortraitLoadMediaPipeCropper"
  • InsightFace é mais preciso, mas tem uma licença não comercial, enquanto MediaPipe é mais rápido no CPU, mas menos preciso
  • Ambos produzem um "cropper" que será usado para detectar e recortar rostos

3. Carregar e Pré-processar Imagem de Origem para LivePortrait

  • Carregue sua imagem de retrato de origem usando o nó "Load Image"
  • Redimensione-a para 512x512 usando o nó "ImageResize"
  • Conecte a imagem redimensionada a um nó "LivePortraitCropper"
  • Também conecte a saída "cropper" do detector de rostos selecionado a este nó
  • Parâmetros chave no nó "LivePortraitCropper"

"dsize": Define a resolução de saída da imagem facial recortada

  • O padrão é 512, o que significa que o rosto será recortado para 512x512 pixels
  • Valores mais altos recortarão o rosto em maior resolução, mas podem ser mais lentos para processar
  • Valores mais baixos serão mais rápidos, mas podem perder alguns detalhes

"scale": Controla o quão aproximado será o recorte do rosto

  • O padrão é 2.3, valores mais altos aproximam mais o rosto, valores mais baixos incluem mais da cabeça/fundo
  • Você deve ajustar isso para que o recorte inclua todo o rosto e um pouco do fundo, mas não muito espaço extra
  • Um bom recorte de rosto é importante para que a transferência de movimento funcione bem
  • Valores típicos variam de 1.8 a 2.5 dependendo do enquadramento da imagem de origem

"face_index": Se houver vários rostos detectados na imagem, isso seleciona qual recortar

  • O padrão é 0, que seleciona o primeiro rosto detectado
  • Aumente isso se quiser selecionar um rosto diferente na imagem
  • Rostos detectados são ordenados com base na configuração "face_index_order" (o padrão é do maior para o menor)

"vx_ratio" e "vy_ratio" (Opcional): Permitem deslocar o recorte verticalmente (vy) ou horizontalmente (vx)

  • Os valores variam de -1 a 1
  • Por exemplo, definir vy para 0.1 deslocará o recorte para cima em 10% do tamanho do frame
  • Isso pode ajudar se o recorte automático estiver ligeiramente desalinhado

"face_index_order": Define como os rostos detectados são ordenados ao selecionar com face_index

  • O padrão é "large-small" que ordena do maior para o menor rosto
  • Também pode ordenar da esquerda para a direita, de cima para baixo, etc.
  • Isso é relevante apenas se você tiver vários rostos na sua imagem

4. Carregar e Pré-processar Vídeo de Condução para LivePortrait

  • Carregue seu vídeo de condução usando o nó "VHS_LoadVideo"
  • Ajuste num_frames usando o primitivo "frame_load_cap"
  • Redimensione os frames do vídeo para 480x480 usando um nó "GetImageSizeAndCount"
  • Você pode opcionalmente recortar os frames do vídeo de condução usando outro nó "LivePortraitCropper"

5. Aplicar Transferência de Movimento para LivePortrait

  • Adicione o nó "LivePortraitProcess"
  • Conecte o pipeline carregado, crop_info da imagem de origem, imagem de origem recortada e frames de condução ao nó "LivePortraitProcess"
  • Parâmetros chave no nó "LivePortraitProcess"

"lip_zero": Quando ativado, isso zerará os parâmetros dos lábios se eles caírem abaixo de um determinado limite

  • Isso pode ajudar a reduzir movimentos labiais não naturais e melhorar a sincronização labial
  • Recomenda-se ativar isso a menos que você queira especificamente preservar todo o movimento labial

"lip_zero_threshold": Define o limite abaixo do qual os parâmetros dos lábios serão zerados quando "lip_zero" estiver ativado

  • O padrão é 0.03, valores mais altos zerarão mais movimento labial, valores mais baixos preservarão mais
  • Ajuste isso se quiser mudar quanto movimento labial é suprimido

"stitching": Quando ativado, isso misturará o rosto animado de volta na imagem original usando um processo de costura

  • Isso pode ajudar a criar uma transição mais suave entre o rosto animado e o fundo
  • Recomenda-se ativar isso para os resultados mais naturais

"delta_multiplier": Isso escala os parâmetros de movimento por um multiplicador

  • O padrão é 1.0, valores mais altos exagerarão o movimento, valores mais baixos o reduzirão
  • Pode ser usado para ajustar a intensidade geral do movimento facial
  • Valores típicos variam de 0.8 a 1.5 dependendo do efeito desejado

"mismatch_method": Define como o fluxo de trabalho lida com discrepâncias entre o número de frames de origem e de condução

  • As opções são "constant", "cycle", "mirror" e "cut"
  • "constant" manterá o último frame, "cycle" fará um loop, "mirror" tocará para frente e para trás, "cut" parará
  • O padrão é "constant", mude isso se quiser um comportamento diferente quando o vídeo de condução for mais longo ou mais curto que o de origem

"relative_motion_mode": Controla como o movimento é transferido do vídeo de condução para a imagem de origem

  • As opções são "relative", "source_video_smoothed", "relative_rotation_only", "single_frame" e "off"
  • "relative" é o padrão e usa transferência de movimento relativa
  • "off" desativará completamente a transferência de movimento
  • Experimente diferentes modos para ver qual dá os melhores resultados para seu caso específico

"driving_smooth_observation_variance": Controla a suavidade do movimento de condução ao usar o modo de movimento "source_video_smoothed"

  • Valores mais altos suavizarão mais o movimento, valores mais baixos preservarão mais do movimento original
  • O padrão é 0.000003, ajuste isso se quiser mudar a suavidade do movimento transferido

6. Compor Resultado (Opcional) para LivePortrait

  • Para compor o rosto animado de volta na imagem de origem, use o nó "LivePortraitComposite"
  • Conecte a imagem de origem original, a imagem animada recortada, os dados de saída do LivePortrait e uma máscara opcional
  • Isso produzirá frames completos com o rosto animado misturado

7. Configurar Retargeting (Opcional) para LivePortrait

  • Para controle mais fino sobre olhos e lábios, use o nó "LivePortraitRetargeting"
  • Ative o retargeting de olhos e/ou lábios e ajuste seus multiplicadores
  • Conecte as informações de retargeting ao "LivePortraitProcess"

Observe que o modelo Insightface é necessário neste fluxo de trabalho. A licença do modelo Insightface (https://github.com/deepinsight/insightface/releases/download/v0.7/buffalo_l.zip) é de natureza não comercial.

Se você estiver interessado no LivePortrait Vid2Vid, use

Deseja Mais Fluxos de Trabalho do ComfyUI?

RunComfy

© Copyright 2024 RunComfy. Todos os Direitos Reservados.

RunComfy é a principal ComfyUI plataforma, oferecendo ComfyUI online ambiente e serviços, juntamente com fluxos de trabalho do ComfyUI apresentando visuais impressionantes.