Alternar tema

Consistência facial no ComfyUI: InstantID, FaceID ou ReActor

Easton editorial illustration: one gender-neutral faceted 3D avatar face token inside a dark rounded ComfyUI-style node canvas

"O README do ComfyUI_InstantID de cubiq documenta o escopo de SDXL, antelopev2, as pastas de modelos, CFG e o controle por pontos-chave."

Você tem uma foto frontal autorizada de uma modelo e quer gerar várias imagens da mesma pessoa em cenários diferentes. Ou talvez já tenha um cartaz pronto e só queira trocar o rosto pelo de um personagem virtual original. São necessidades diferentes: a primeira injeta a identidade durante a geração; a segunda troca o rosto no pós-processamento.

As três soluções mais comuns no ComfyUI são InstantID, IPAdapter FaceID e ReActor. Embora os nomes pareçam semelhantes, elas cumprem papéis distintos. O nó InstantID para ComfyUI é voltado ao SDXL e tem mais dependências; o FaceID cobre SD1.5 e SDXL, mas exige a combinação correta entre modelo e LoRA; o ReActor troca o rosto após a geração e não participa do processo de difusão.

Para escolher, identifique primeiro se a necessidade acontece durante a geração ou no pós-processamento. Depois confira dependências, ajustes, erros frequentes e os limites de uso do material.

1. Comparativo: identidade durante a geração ou troca posterior

Comece com uma pergunta: você quer gerar do zero várias imagens da mesma pessoa ou já tem uma imagem final e só deseja trocar o rosto? A resposta define a rota.

RotaFunçãoCaso de usoEntradaRestrição de modeloComplexidade das dependências
InstantIDManter a identidade durante a geraçãoGerar do zero várias imagens do mesmo rostoUma imagem facial de referênciaO ComfyUI_InstantID atualmente é voltado ao SDXLAlta (InsightFace + onnxruntime + antelopev2 + ControlNet + modelo principal do InstantID)
IPAdapter FaceIDManter a identidade durante a geraçãoGerar do zero várias imagens do mesmo rostoUma ou mais imagens faciais de referênciaSD1.5 + SDXLMédia (InsightFace + modelo FaceID + LoRA correspondente)
ReActorTroca de rosto posteriorSubstituir somente o rosto de uma imagem existenteImagem original + rosto de destinoNão depende do modelo base de geraçãoDepende da versão (o novo núcleo alfa 0.7 não obriga mais o uso de InsightFace, mas modelos e licenças ainda precisam ser verificados)

Como decidir

  • Para gerar do zero várias imagens da mesma pessoa → InstantID ou FaceID
  • Se já existe uma imagem final e você só quer trocar o rosto → ReActor
  • Se você tem apenas uma referência facial → as três opções podem usá-la, mas InstantID e FaceID são mais adequados para controlar a geração
  • Se quer trocar o rosto sem mudar pose nem composição da imagem final → ReActor é mais direto

Aviso prévio sobre licenças

InstantID e FaceID geralmente dependem do InsightFace para extrair características faciais. O código do InsightFace usa licença MIT, mas seus dados de treinamento e os modelos treinados com eles destinam-se, por padrão, à pesquisa não comercial. O cartão do modelo FaceID também limita os modelos correspondentes à pesquisa. O ReActor se apresenta como SFW-friendly, inclui um detector de nudez e exige uso responsável no README.

Antes de publicar ou comercializar um resultado, verifique separadamente a autorização de imagem, a licença dos pesos e as regras da plataforma. Este artigo trata apenas de material próprio ou autorizado, personagens originais e testes internos.

2. InstantID: identidade durante a geração com SDXL

2.1 Instalação e caminhos dos modelos

O InstantID tem mais dependências que FaceID e ReActor. Depois de instalar o nó, os caminhos dos modelos são a fonte mais comum de erros.

Etapas de instalação:

# 1. Clonar o nó
cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_InstantID.git

# 2. Instalar as dependências
pip install insightface onnxruntime onnxruntime-gpu

O pacote Python padrão do InsightFace 1.0 não compila mais a extensão opcional face3d em C++/Cython, reduzindo os requisitos de compilação local. Se um ambiente ou tutorial antigo ainda produzir erros de compilação, confira primeiro a versão real e use um ambiente virtual separado; não suponha que a versão atual exija Visual Studio C++ Build Tools.

ModeloCaminho de destinoOrigem
antelopev2ComfyUI/models/insightface/models/antelopev2Modelo do InsightFace
Modelo principal do InstantIDComfyUI/models/instantidInstantX no Hugging Face
ControlNet do InstantIDComfyUI/models/controlnetInstantX no Hugging Face

O README atual do ComfyUI_InstantID informa que o nó é usado somente com SDXL. Se o fluxo for baseado em SD1.5, você precisa mudar para FaceID.

O repositório ComfyUI_InstantID está em modo de manutenção desde 14 de abril de 2025. Correções importantes ainda podem ser aceitas, mas o mantenedor não promete desenvolvimento contínuo. Confira o README vigente antes de instalar.

2.2 Fluxo e ajustes

Fluxo básico:

  1. Carregue um checkpoint SDXL
  2. Conecte o nó Apply InstantID e forneça uma imagem facial frontal
  3. Incorpore o modelo InstantID e a condição do ControlNet à cadeia de amostragem
  4. Gere a imagem

A qualidade da referência afeta diretamente a semelhança final. Uma imagem frontal, nítida, sem obstruções e com iluminação uniforme costuma ser mais estável. Um rosto de perfil, pequeno, desfocado ou muito coberto pode não ser detectado ou resultar em pouca semelhança.

SintomaDireção do ajuste
Pouca semelhançaAumente gradualmente o peso do modelo InstantID ou do ControlNet
Saturação excessiva ou pouco controle do textoPrimeiro reduza o peso do modelo InstantID e compare com a imagem de referência
CFG alto demaisSiga o README do nó e reduza para cerca de 4-5, ou use RescaleCFG

O caminho principal da implementação original do InstantID não aceita referências de várias pessoas e usa apenas os pontos-chave do maior rosto. O ComfyUI_InstantID também oferece um fluxo Multi-ID mais complexo e lento, mas ele não deve ser tratado como uma solução simples e estável para várias pessoas.

Funções avançadas do nó:

  • Advanced InstantID: permite ajustar separadamente os pesos do modelo InstantID e do ControlNet
  • Noise injection: ajuda a reduzir imagens excessivamente queimadas e a refinar a semelhança
  • Entrada image_kps: usa os pontos-chave de outra imagem para mudar a pose e reduzir a influência da pose da referência

Para controlar a pose com mais precisão, você pode combinar o fluxo com ControlNet OpenPose.

3. IPAdapter FaceID: identidade durante a geração em SD1.5 e SDXL

O FaceID é a variante facial da família IPAdapter. Ele usa um embedding de reconhecimento facial em vez de um embedding de imagem CLIP convencional e pode reforçar a identidade com uma LoRA.

3.1 Instalação e combinação de modelos

Primeiro instale a dependência dentro do ambiente Python do ComfyUI:

pip install insightface

Coloque os modelos FaceID em ComfyUI/models/ipadapter e as LoRAs correspondentes em ComfyUI/models/loras. O Unified Loader FaceID usa os nomes oficiais para fazer a combinação automática; um nome incorreto impede o carregamento.

Modelo FaceIDLoRA correspondenteCaminho
ip-adapter-faceid_sd15.binip-adapter-faceid_sd15_lora.safetensorsmodels/ipadapter + models/loras
ip-adapter-faceid-plusv2_sd15.binip-adapter-faceid-plusv2_sd15_lora.safetensorsIgual ao anterior
ip-adapter-faceid_sdxl.binip-adapter-faceid_sdxl_lora.safetensorsIgual ao anterior
ip-adapter-faceid-plusv2_sdxl.binip-adapter-faceid-plusv2_sdxl_lora.safetensorsIgual ao anterior

A lista e os nomes específicos podem mudar quando o nó for atualizado. Antes de instalar, consulte o README do ComfyUI_IPAdapter_plus e confirme que o modelo e a LoRA correspondem ao modelo base e à versão. Omitir a LoRA ou usar uma combinação errada reduz significativamente a consistência.

Diferenças entre versões:

  • PlusV2: combina o embedding de identidade facial com um embedding de imagem CLIP ajustável e permite modificar o peso da estrutura do rosto
  • Portrait: é voltado a retratos, não requer LoRA nem ControlNet e aceita várias imagens faciais para aumentar a semelhança
  • FaceID para SDXL e PlusV2-SDXL: o cartão do modelo os marca como experimentais, portanto não devem ser tratados como soluções absolutamente estáveis

O repositório ComfyUI_IPAdapter_plus também está em modo de manutenção desde 14 de abril de 2025.

3.2 Fluxo e ajustes

O peso do FaceID não precisa começar em 1.0. Um peso de identidade alto demais pode aproximar o resultado da referência, mas também enfraquecer o controle do prompt.

Direções de ajuste:

  • Comece com um valor próximo de 0.8 e aumente gradualmente se a semelhança não for suficiente
  • Se precisar de mais fidelidade ao prompt, altere o tipo de peso no IPAdapter Advanced ou reduza o peso
  • O PlusV2 também permite ajustar separadamente o peso relacionado à estrutura facial

FaceID e InstantID fornecem uma condição de identidade durante a geração. O FaceID cobre SD1.5 e SDXL, enquanto o nó atual do ComfyUI_InstantID é voltado ao SDXL. O uso de VRAM varia conforme o modelo base, a resolução, a GPU e a versão do nó, por isso não convém resumi-lo em um único número.

4. ReActor: troca de rosto SFW no pós-processamento

O ReActor tem uma função diferente: ele não participa da difusão, mas troca o rosto de uma imagem existente ou já gerada.

4.1 Instalação e mudanças nas dependências

O novo núcleo alfa do ReActor 0.7.0 declara que não precisa mais de InsightFace nem C++ Build Tools. No entanto, a tabela de modelos e a seção de licenças do README atual ainda incluem buffalo_l, inswapper_128.onnx e outros modelos. A instalação e a autorização devem ser verificadas de acordo com a versão vigente.

ModeloCaminho no README atual
buffalo_lComfyUI/models/insightface/models/buffalo_l
inswapper_128ComfyUI/models/insightface
reswapperComfyUI/models/reswapper
hyperswapComfyUI/models/hyperswap
Modelo Face RestoreComfyUI/models/facerestore_models

Tutoriais antigos costumam apresentar InsightFace e C++ Build Tools como requisitos fixos. Se as instruções entrarem em conflito, confira primeiro a versão do ReActor e siga o README correspondente, sem misturar etapas de dependências de tutoriais antigos.

O ReActor inclui um detector de nudez. Seu README exige consentimento das pessoas quando rostos reais são usados e uma divulgação clara da natureza sintética do conteúdo publicado. As licenças comerciais de buffalo_l, inswapper_128 e outros modelos precisam ser confirmadas separadamente.

4.2 Fluxo

Etapas básicas para trocar um rosto:

  1. Conecte a imagem a ser processada em input_image e a referência autorizada em source_image
  2. Comece com uma intensidade conservadora no ReActorSetWeight
  3. Opcional: confira a semelhança depois da troca com Face Similarity
  4. Opcional: repare bordas e detalhes com Face Restoration
  5. Opcional: salve o face model para carregar depois o embedding do mesmo rosto
FunçãoDescrição
ReActorSetWeightAjusta a intensidade entre 0% e 100% conforme os passos do nó; um valor excessivo pode produzir aparência plástica ou bordas pouco naturais
Face SimilarityVerifica a semelhança do resultado
Face RestorationRepara bordas e detalhes; uma intensidade alta também pode causar aparência plástica
Face ModelSalva ou carrega o embedding facial para reutilizar o mesmo rosto

O ReActor não gera novamente a composição, a roupa nem a pose da imagem. Se você quer preservar todo o conteúdo de uma imagem pronta e modificar apenas a área facial, ele é mais direto que InstantID ou FaceID.

5. Qualidade da referência e erros frequentes

5.1 Lista para avaliar a referência

A qualidade da referência costuma ser mais importante do que continuar aumentando o peso. Uma imagem frontal, nítida, sem obstruções e com iluminação uniforme tende a gerar resultados mais estáveis. Um rosto de perfil, desfocado, pequeno ou muito coberto não será totalmente corrigido mesmo com peso alto.

Ordem de prioridade:

  1. Frontal > de perfil ou inclinado
  2. Nítido > desfocado
  3. Sem obstruções > óculos, máscara ou franja cobrindo o rosto
  4. Iluminação uniforme > sombras fortes ou contraluz

Esse critério se aplica às referências faciais de InstantID, FaceID e ReActor. Se a detecção falhar, primeiro recorte o rosto ou troque a referência; não leve todos os pesos ao máximo.

5.2 Tabela de solução de problemas

ProblemaCausa possívelO que verificar
Modelo não encontrado (antelopev2 / buffalo_l / modelo principal do InstantID)Caminho incorreto ou modelo não baixadoConfira models/insightface/models, models/instantid e as demais pastas no README vigente do nó
Falha na detecção (no face detected)Rosto de perfil, pequeno, desfocado ou cobertoUse uma referência frontal, nítida e sem obstruções; recorte o rosto se necessário
O rosto se parece, mas a pose ou a expressão mudaA condição facial também transmite parte da estruturaControle a pose com ControlNet ou use ReActor em uma imagem já pronta
Pouca semelhançaFalta a LoRA do FaceID, o peso está inadequado ou a referência é ruimConfira a combinação de modelo e LoRA, crie uma base perto de 0.8 e ajuste um item por vez
Bordas estranhas ou aparência plásticaIntensidade excessiva no ReActor ou Face RestorationReduza a troca e a restauração; confira tamanho, ângulo e iluminação do rosto de destino
Erro ao instalar dependênciasMistura de tutoriais antigos, nós desatualizados e ambiente Python atualConfirme primeiro as versões do nó e do InsightFace e siga o README atual em um ambiente separado

Ordem de diagnóstico:

  • Se a detecção falhar → confira primeiro a qualidade da referência
  • Se faltar semelhança → confira primeiro modelos, LoRA e caminhos
  • Se a pose mudar → diferencie identidade durante a geração de troca posterior; depois adicione ControlNet ou mude de rota

6. Limites ao combinar ControlNet, Kontext e LoRA

Fixar um rosto não fixa pose, corpo, roupa ou composição. Quando InstantID e FaceID injetam uma condição de identidade, a pose, a expressão ou o cabelo da referência também podem influenciar o resultado.

Combinações recomendadas:

  • InstantID ou FaceID + ControlNet OpenPose → a condição facial controla a identidade, e o ControlNet controla o corpo e a pose
  • FaceID + IPAdapter convencional → o FaceID fixa o rosto e o outro IPAdapter controla estilo ou composição; comece com valores conservadores nas duas rotas
  • ReActor + restauração em alta resolução → primeiro gere a imagem, depois troque o rosto e aplique face restore ou inpaint local somente quando necessário
  • Kontext → é adequado para mudar fundo, roupa ou cena na mesma imagem, mas não é uma solução especializada em fixar identidade facial
  • LoRA → é adequada para reutilizar a longo prazo um personagem original ou uma pessoa virtual de marca, mas exige conjunto de dados e treinamento

Quando a pose precisar ser exata, forneça uma imagem de pose ao ControlNet OpenPose: InstantID ou FaceID cuida do rosto e ControlNet cuida do corpo. Se você só quer manter a composição de uma imagem final e trocar o rosto, o ReActor é mais direto.

Artigos relacionados:

7. Limites legais e de licença

A licença e a origem do material são limites críticos. Uma técnica funcionar não significa que o material, os modelos e a publicação estejam autorizados.

Separe a licença do código e a dos modelos do InsightFace

O código do InsightFace usa licença MIT e permite usos acadêmicos e comerciais. No entanto, seus dados de treinamento e os modelos pré-treinados com esses dados destinam-se, por padrão, à pesquisa não comercial. O README atual do InsightFace também fornece contatos de licença diferentes para a família inswapper e para os modelos abertos de reconhecimento facial.

O cartão do modelo FaceID também informa que o IP-Adapter-FaceID é destinado somente à pesquisa porque depende de modelos pré-treinados do InsightFace. Não confunda a licença do código do nó com a autorização comercial dos pesos.

Responsabilidade e divulgação no ReActor

A versão atual do ReActor se apresenta como SFW-friendly e inclui um detector de nudez. Seu README exige o cumprimento das leis locais, o consentimento ao usar rostos reais e uma divulgação clara de que o conteúdo publicado foi alterado por troca facial ou IA.

Restrições sobre a origem do material

Este artigo trata somente destes casos:

  • Fotos de modelos com autorização de imagem e uso
  • Material pessoal que você produziu e tem direito de processar
  • Personagens virtuais originais que não representam uma pessoa real
  • Testes internos em conformidade que não serão publicados

Antes do uso comercial ou da publicação, confira separadamente a autorização de imagem, a licença dos modelos e as regras da plataforma. Se não puder confirmar qualquer um desses pontos, não publique nem comercialize o resultado.

Resumo e próximo passo

A decisão principal é simples:

  • Identidade durante a geração → InstantID (o nó atual do ComfyUI é voltado ao SDXL) ou FaceID (SD1.5 + SDXL)
  • Troca de rosto posterior → ReActor
  • A qualidade da referência, os caminhos e a combinação de versões têm prioridade sobre aumentar pesos sem critério
  • A licença do código não garante o uso comercial do modelo pré-treinado; rostos reais também exigem autorização

O InstantID se encaixa em fluxos SDXL e tem mais dependências, mas permite controlar separadamente identidade e pontos-chave. O FaceID aceita mais modelos base, embora modelo e LoRA precisem corresponder. O ReActor não participa da difusão e serve para tratar o rosto de uma imagem existente.

Você pode continuar com:

Escolher e ajustar um fluxo de consistência facial no ComfyUI

Escolha a rota conforme a etapa, confira referência, pastas e versões e altere somente um peso por vez.

  1. 1

    Step 1: Defina em qual etapa a tarefa acontece

    Escolha InstantID ou IPAdapter FaceID para gerar imagens novas a partir de um rosto; escolha ReActor quando a imagem já existir e você só for substituir o rosto.
  2. 2

    Step 2: Prepare uma referência adequada e autorizada

    Priorize uma imagem frontal, nítida, sem obstruções, com iluminação uniforme e rosto grande o suficiente, e confirme os direitos sobre o retrato e o material.
  3. 3

    Step 3: Instale os modelos e as dependências da rota

    No InstantID, confira antelopev2, o modelo principal e o ControlNet; no FaceID, insightface, o modelo FaceID e sua LoRA; no ReActor, siga o README da versão atual.
  4. 4

    Step 4: Crie um resultado de referência

    Gere primeiro uma imagem com valores padrão ou conservadores. Não mude ao mesmo tempo pose, expressão, cabelo, modelo base e vários pesos de identidade.
  5. 5

    Step 5: Ajuste de acordo com o sintoma

    Se faltar semelhança, aumente gradualmente o peso de identidade ou confira a combinação; se o prompt perder força, reduza o peso do Adapter; se o rosto parecer plástico, diminua a troca e a restauração.
  6. 6

    Step 6: Adicione controle de pose ou personagem

    Combine ControlNet quando precisar de uma pose precisa; para reutilizar um personagem original a longo prazo, avalie treinar uma LoRA em vez de delegar todo o controle a uma referência facial.

FAQ

Devo usar InstantID ou ReActor para manter a mesma pessoa no ComfyUI?
Para gerar imagens novas a partir de um rosto, priorize InstantID ou IPAdapter FaceID; se a imagem já estiver pronta e você só quiser substituir o rosto, use ReActor.
Por que o IPAdapter FaceID também precisa de uma LoRA?
O FaceID fornece a condição de identidade por meio de um embedding de reconhecimento facial, e a maioria dos modelos FaceID ainda precisa da LoRA correspondente para reforçar a consistência. Modelo e LoRA devem combinar com o modelo base e a versão.
O InstantID no ComfyUI funciona somente com SDXL?
O README atual do cubiq/ComfyUI_InstantID informa que o nó é voltado exclusivamente ao SDXL e requer antelopev2, o modelo principal do InstantID e um modelo ControlNet. Para outras implementações ou versões futuras, consulte as respectivas instruções.
O ReActor 0.7 ainda precisa de InsightFace e C++ Build Tools?
O novo núcleo alfa do ReActor 0.7 declara que não requer mais InsightFace nem C++ Build Tools, embora a lista atual de modelos e as notas de licença ainda mencionem buffalo_l, inswapper_128 e outros modelos. Confira o README vigente para instalar e avaliar o uso comercial.
É possível usar troca de rosto no ComfyUI comercialmente?
Não basta verificar a licença do código do nó. Confirme também a autorização de imagem, o contexto de uso, as regras da plataforma e as licenças de modelos pré-treinados como InsightFace, inswapper e FaceID. Em caso de dúvida, não use em publicação comercial.
Por que o rosto fica com aparência plástica depois da troca?
As causas comuns são intensidade excessiva de troca ou restauração, rosto de destino pequeno demais ou diferenças de ângulo e iluminação. Primeiro reduza a restauração e teste uma referência autorizada mais nítida e com ângulo semelhante.

14 min de leitura · Publicado em: 21 ago 2026 · Atualizado em: 21 ago 2026

Comentários

Entre com GitHub para comentar

Easton BlogEaston Blog