Corrija rostos e mãos com ADetailer e FaceDetailer
Compare ADetailer para A1111/Forge e FaceDetailer para ComfyUI — inpainting automático que detecta rostos, mãos e pessoas.
On this page
Corrija Rostos e Mãos com ADetailer e FaceDetailer
TL;DR
- ADetailer (A1111/Forge) e FaceDetailer (ComfyUI) automatizam o loop detectar → mascarar → inpaint para que você nunca precise desenhar uma máscara à mão.
- ADetailer roda dentro da WebUI com até duas abas de modelo (padrão), configurável via
ad_max_models; FaceDetailer vive no Impact Pack e exige o Impact Subpack separado para detecção YOLO. - Ambas ferramentas suportam modelos YOLOv8 para rostos, mãos e pessoas, além de SAM para segmentação precisa que mantém os aprimoramentos alinhados aos contornos faciais.
Como Detailers Automáticos Substituem o Inpainting Manual
O inpainting manual exige enviar uma imagem para a aba Inpaint, pincelar uma máscara e gerar — ADetailer e FaceDetailer eliminam essas etapas. Um modelo de detecção encontra a região, cria a máscara e roda o inpainting em uma única passada.
A documentação do ADetailer descreve seu fluxo como três etapas: criar uma imagem, detectar objetos e criar uma imagem de máscara, então fazer inpainting usando a imagem e a máscara (README Bing-su/adetailer). FaceDetailer segue o mesmo padrão no ComfyUI: um UltralyticsDetectorProvider produz caixas delimitadoras, um SAMLoader opcional as refina em silhuetas, e um nó Detailer faz upscale apenas da região recortada (README ComfyUI-Impact-Pack).
A diferença prática: ADetailer expõe o pipeline como abas da UI; FaceDetailer expõe como nós que você conecta. Ambos permitem rodar múltiplos detectores — rosto e mão, ou rosto e pessoa — para que uma única geração corrija várias áreas problemáticas de uma vez.
ADetailer no Automatic1111 e Forge
Modelos Suportados e o que Detectam
O ADetailer vem com modelos de detecção YOLOv8. Principais modelos e seus alvos de detecção: Modelo | Alvo | mAP@50 | mAP@50-95 | Fonte
|-------|------|--------|-----------|------
face_yolov8n.pt | rosto 2D / realista | 0.660 | 0.366 | HF/Bingsu/adetailer face_yolov8s.pt | rosto 2D / realista | 0.713 | 0.404 | HF/Bingsu/adetailer hand_yolov8n.pt | mão 2D / realista | 0.767 | 0.505 | HF/Bingsu/adetailer hand_yolov8s.pt | mão 2D / realista | 0.794 | 0.527 | HF/Bingsu/adetailer person_yolov8n-seg.pt | pessoa 2D / realista | 0.782 / 0.761 | 0.555 / 0.460 | HF/Bingsu/adetailer person_yolov8s-seg.pt | pessoa 2D / realista | 0.824 / 0.809 | 0.605 / 0.508 | HF/Bingsu/adetailer Tabela completa com todas as variantes (face_yolov8m.pt, face_yolov9c.pt, hand_yolov9c.pt, person_yolov8m-seg.pt) está em Bingsu/adetailer. Três modelos MediaPipe de rosto (full, short, mesh) também estão disponíveis mas não reportam valores de mAP. Coloque qualquer arquivo .pt do Ultralytics em models/adetailer e o ADetailer o listará automaticamente.
Principais Configurações e o que Fazem
Parâmetro | Padrão | Intervalo | Propósito
|-----------|---------|---------|---------
Confiança de detecção | 0.3 | 0.0–1.0 | Pontuação mínima para uma detecção disparar o inpainting; menor = mais detecções Máscara min / max ratio | 0.0 / 1.0 | 0.0–1.0 | Filtrar máscaras por área relativa; aumente o mínimo para ignorar objetos minúsculos Máscara apenas top k maiores | 0 (desabilitado) | inteiro | Manter apenas as k maiores caixas delimitadoras Dilatar / erodir | +4 | inteiro (px) | Expandir (positivo) ou encolher (negativo) a máscara antes do inpainting Offset X / Y | 0 | inteiro (px) | Empurrar a máscara horizontal ou verticalmente Modo de mesclar máscaras | None | None / Merge / Merge and Invert | Combinar múltiplas máscaras em uma passada de inpainting Força de denoising do inpainting | 0.4 | 0.0–1.0 | O quanto a região inpaintada pode mudar; menor = mais próximo do original Inpaint apenas mascarado | On | booleano | Restringir difusão aos pixels mascarados; recomendado para rostos Padding do inpainting | 32 | inteiro (px) | Pixels de contexto ao redor da máscara alimentados ao sampler Modelo ControlNet | None | inpaint, scribble, lineart, openpose, tile, depth | Adiciona guia estrutural durante o inpainting; pré-processador selecionado automaticamente Todos os padrões vêm do schema de args do ADetailer em adetailer/args.py. O guia da ThinkDiffusion nota que valores de threshold mais baixos (ex.: 0.3) são aconselháveis para detectar rostos; aumente se houver falsos positivos em texturas de fundo (guia ThinkDiffusion).
Principais Configurações e o que Fazem
Parâmetro | Padrão | Intervalo | Propósito
|-----------|---------|---------|---------
Confiança de detecção | 0.3 | 0.0–1.0 | Pontuação mínima para uma detecção disparar o inpainting; menor = mais detecções Máscara min / max ratio | 0.0 / 1.0 | 0.0–1.0 | Filtrar máscaras por área relativa; aumente o mínimo para ignorar objetos minúsculos Máscara apenas top k maiores | 0 (desabilitado) | inteiro | Manter apenas as k maiores caixas delimitadoras Dilatar / erodir | +4 | inteiro (px) | Expandir (positivo) ou encolher (negativo) a máscara antes do inpainting Offset X / Y | 0 | inteiro (px) | Empurrar a máscara horizontal ou verticalmente Modo de mesclar máscaras | None | None / Merge / Merge and Invert | Combinar múltiplas máscaras em uma passada de inpainting Força de denoising do inpainting | 0.4 | 0.0–1.0 | O quanto a região inpaintada pode mudar; menor = mais próximo do original Inpaint apenas mascarado | On | booleano | Restringir difusão aos pixels mascarados; recomendado para rostos Padding do inpainting | 32 | inteiro (px) | Pixels de contexto ao redor da máscara alimentados ao sampler Modelo ControlNet | None | inpaint, scribble, lineart, openpose, tile, depth | Adiciona guia estrutural durante o inpainting; pré-processador selecionado automaticamente Todos os padrões vêm do schema de args do ADetailer em adetailer/args.py. O guia da ThinkDiffusion nota que valores de threshold mais baixos (ex.: 0.3) são aconselháveis para detectar rostos; aumente se houver falsos positivos em texturas de fundo (guia ThinkDiffusion).
[Load Image] → [UltralyticsDetectorProvider(bbox/face_yolov8m.pt)] → [BBox Detector] → [FaceDetailer] → [Preview/Save]
Adicione um SAMLoader e SAMDetector (combined) entre o BBox Detector e o FaceDetailer para trocar caixas retangulares por silhuetas precisas. O README do Impact Pack documenta essa combinação: o detector BBox encontra rostos, o detector SAM extrai o segmento relacionado a cada rosto, e um nó Segs & Mask intersecciona as duas máscaras para que apenas o contorno facial seja aprimorado (README Impact Pack). O tutorial de detectores explica que SAMLoader (Impact) carrega o modelo SAM usado por essa cadeia (tutorial detectores).
Fluxo de Múltiplas Passadas (2Pass)
Conecte um segundo FaceDetailer (pipe) após o primeiro. A primeira passada usa configurações moderadas para reconstruir o contorno básico; a segunda passada refina o detalhe. O README do Impact Pack descreve FaceDetailer (pipe) como a variante feita "para multipass" — ela agrupa modelo, VAE e conditioning em um único DETAILER_PIPE para que você não repita entradas (README Impact Pack).
Suporte a AnimateDiff / Vídeo
O tutorial de detailers do Impact Pack lista nós Detailer For AnimateDiff e SEGSDetailer For AnimateDiff para aprimorar frames em fluxos de trabalho AnimateDiff (tutorial detailers).
Quando Usar Detailers em Vez de Inpainting Manual
Situação | Inpainting Manual | ADetailer / FaceDetailer
|-----------|-------------------|--------------------------
Uma ou duas falhas óbvias por imagem | Rápido, controle total | Overhead não compensa Lote de 50+ imagens com falhas semelhantes | Impraticável | Um clique por imagem ou lote completo Rostos menores que ~64 px no frame | Difícil mascarar com precisão | Modelo de detecção os encontra com confiabilidade Mãos + rostos precisam de correção | Duas passadas de máscara separadas | Duas abas de detector / nós em uma execução Precisar da mesma máscara exata entre frames (vídeo) | Quase impossível | Simple Detector for Video + máscara pivot Querer manter fundo intocado | Fácil com pincel cuidadoso | Exige SAM + interseção BBox Regra prática: se você abriria a aba Inpaint mais de três vezes numa sessão, um detailer paga seu tempo de configuração.
Erros Comuns e Correções
Sintoma | Causa | Correção
|---------|-------|--------
Rostos distorcidos em 512×512 ou menos | Poucos pixels na região facial para o modelo base | Ative ADetailer ou FaceDetailer; o detailer faz upscale do crop para guide_size antes do inpainting Mãos distorcidas em fotos de corpo inteiro | Modelo base carece de dados de treino de mãos | Adicione uma segunda aba ADetailer com hand_yolov8n.pt ou segundo FaceDetailer alimentado por detector de mão Aprimoramento sangra para o fundo | Máscara bbox retangular inclui ombros/cabelo | Insira SAMLoader + SAMDetector (combined) e intersequete com máscara BBox via Segs & Mask ReActor: AttributeError: 'NoneType' object has no attribute 'get' | inswapper_128.onnx corrompido ou faltando | Baixe novamente de HuggingFace datasets/Gourieff/ReActor e substitua em ComfyUI/models/insightface/ (README ReActor) ReActor Masking Helper não encontra rostos | Faltando face_yolov8m.pt ou modelo SAM | Coloque face_yolov8m.pt em ComfyUI/models/ultralytics/bbox/ e sam_vit_b_01ec64.pth em ComfyUI/models/sams/ (README ReActor) ADetailer: "img2img inpainting with skip img2img is not supported" | Skip img2img habilitado numa tarefa img2img inpaint | Desative Skip img2img nas opções do ADetailer ao usar modo img2img
FAQ
Qual threshold de confiança de detecção devo usar para detecção de rosto no ADetailer? Comece no padrão 0.3. Mais baixo (ex.: 0.2) captura mais rostos — incluindo falsos positivos em texturas. Aumente (ex.: 0.5) se objetos de fundo forem inpaintados.
Quantos modelos ADetailer posso rodar simultaneamente? Duas abas por padrão. Altere a opção ad_max_models nas configurações da WebUI para permitir mais; cada modelo adicional adiciona uma passada completa detectar → mascarar → inpaint.
Por que preciso de SAM para o FaceDetailer? Caixas delimitadoras são retângulos; rostos não são. O SAM converte cada caixa em uma silhueta que abraça a linha da mandíbula e do cabelo, para que o inpainting fique dentro do rosto.
Qual a diferença entre ADetailer e inpainting manual? Inpainting manual permite posicionar a máscara exatamente onde você quer. ADetailer a posiciona onde o detector acha que o objeto está. Para rostos e mãos em baixa resolução, o detector costuma ser mais consistente que uma pincelada apressada.
O ADetailer consegue corrigir olhos especificamente? Não há modelo dedicado de olhos no ADetailer. Os modelos de rosto cobrem toda a região facial; o detalhe dos olhos melhora como efeito colateral da passada de inpainting do rosto.
Como atualizo os modelos YOLO quando saem novas versões? Baixe novamente os arquivos .pt de huggingface.co/Bingsu/adetailer (ADetailer) ou via lista de modelos do ComfyUI-Manager (Impact Pack) (pyproject.toml ComfyUI-Manager). Sobrescreva os arquivos antigos e reinicie a UI.
Link interno: fundamentos do inpainting automático Link interno: comparação de modelos YOLO Link interno: guia de custom nodes ComfyUI Link interno: tutorial ReActor face swap Link interno: ControlNet para inpainting