ArtificialGuyBR

Home / Blog / Fixing things

Corrige caras y manos con ADetailer y FaceDetailer

Compara ADetailer para A1111/Forge y FaceDetailer para ComfyUI — inpainting automático que detecta caras, manos y personas.

10 sources cited Fixing things

Corrige caras y manos con ADetailer y FaceDetailer

TL;DR

  • ADetailer (A1111/Forge) y FaceDetailer (ComfyUI) automatizan el ciclo detectar → enmascarar → inpainting, así que nunca dibujas una máscara a mano.
  • ADetailer se ejecuta dentro de la WebUI con hasta dos pestañas de modelo (por defecto), configurable mediante ad_max_models; FaceDetailer vive en el Impact Pack y requiere el Impact Subpack independiente para la detección YOLO.
  • Ambas herramientas admiten modelos YOLOv8 para caras, manos y personas, además de SAM para una segmentación precisa que mantiene las mejoras alineadas con los contornos faciales.

Cómo los detailers automáticos sustituyen el inpainting manual

El inpainting manual exige enviar la imagen a la pestaña Inpaint, pintar una máscara con el pincel y generar — ADetailer y FaceDetailer eliminan esos pasos. Un modelo de detección localiza la región, construye la máscara y ejecuta el inpainting en una sola pasada.

La documentación de ADetailer describe su flujo en tres pasos: crear una imagen, detectar objetos y crear una imagen de máscara, y luego aplicar inpainting con la imagen y la máscara (Bing-su/adetailer README). FaceDetailer sigue el mismo patrón en ComfyUI: un UltralyticsDetectorProvider produce las cajas delimitadoras, un SAMLoader opcional las refina en siluetas, y un nodo Detailer escala solo la región recortada (ComfyUI-Impact-Pack README).

La diferencia práctica: ADetailer expone el pipeline como pestañas de la interfaz; FaceDetailer lo expone como nodos que conectas entre sí. Ambos permiten ejecutar varios detectores — cara y mano, o cara y persona — de modo que una sola generación corrige varias zonas problemáticas a la vez.

ADetailer en Automatic1111 y Forge

Modelos admitidos y qué detectan

ADetailer incluye modelos de detección YOLOv8. Modelos clave y sus objetivos de detección: Modelo | Objetivo | mAP@50 | mAP@50-95 | Source

|-------|--------|--------|-----------|--------

face_yolov8n.pt | Cara 2D / realista | 0.660 | 0.366 | HF/Bingsu/adetailer face_yolov8s.pt | Cara 2D / realista | 0.713 | 0.404 | HF/Bingsu/adetailer hand_yolov8n.pt | Mano 2D / realista | 0.767 | 0.505 | HF/Bingsu/adetailer hand_yolov8s.pt | Mano 2D / realista | 0.794 | 0.527 | HF/Bingsu/adetailer person_yolov8n-seg.pt | Persona 2D / realista | 0.782 / 0.761 | 0.555 / 0.460 | HF/Bingsu/adetailer person_yolov8s-seg.pt | Persona 2D / realista | 0.824 / 0.809 | 0.605 / 0.508 | HF/Bingsu/adetailer La tabla completa con todas las variantes (face_yolov8m.pt, face_yolov9c.pt, hand_yolov9c.pt, person_yolov8m-seg.pt) está en Bingsu/adetailer. También hay tres modelos MediaPipe de cara (full, short, mesh), pero no publican cifras de mAP. Coloca cualquier archivo .pt de Ultralytics en models/adetailer y ADetailer lo listará automáticamente.

Ajustes clave y qué hacen

Parámetro | Por defecto | Rango | Propósito

|-----------|---------|-------|---------

Confianza de detección | 0.3 | 0.0–1.0 | Puntuación mínima para que una detección dispare el inpainting; más bajo = más detecciones Ratio mín / máx de máscara | 0.0 / 1.0 | 0.0–1.0 | Filtra máscaras por área relativa; sube el mínimo para ignorar objetos diminutos Enmascarar solo los k más grandes | 0 (desactivado) | entero | Conserva solo las k cajas delimitadoras mayores Dilatar / erosionar | +4 | entero (px) | Expande (positivo) o contrae (negativo) la máscara antes del inpainting Desplazamiento X / Y | 0 | entero (px) | Mueve la máscara en horizontal o vertical Modo de fusión de máscaras | None | None / Merge / Merge and Invert | Combina varias máscaras en una sola pasada de inpainting Fuerza de denoising del inpainting | 0.4 | 0.0–1.0 | Cuánto puede cambiar la región con inpainting; más bajo = más fiel al original Inpaint only masked | Activado | booleano | Limita la difusión a los píxeles enmascarados; recomendado para caras Padding del inpainting | 32 | entero (px) | Píxeles de contexto alrededor de la máscara que se pasan al sampler Modelo ControlNet | None | inpaint, scribble, lineart, openpose, tile, depth | Añade guía estructural durante el inpainting; el preprocesador se elige automáticamente Todos los valores por defecto provienen del esquema de argumentos de ADetailer en adetailer/args.py. La guía de ThinkDiffusion señala que valores de umbral bajos (p. ej., 0.3) son aconsejables para detectar caras; súbelo si aparecen falsos positivos en texturas del fondo (guía de ThinkDiffusion).

Ajustes clave y qué hacen

Parámetro | Por defecto | Rango | Propósito

|-----------|---------|-------|---------

Confianza de detección | 0.3 | 0.0–1.0 | Puntuación mínima para que una detección dispare el inpainting; más bajo = más detecciones Ratio mín / máx de máscara | 0.0 / 1.0 | 0.0–1.0 | Filtra máscaras por área relativa; sube el mínimo para ignorar objetos diminutos Enmascarar solo los k más grandes | 0 (desactivado) | entero | Conserva solo las k cajas delimitadoras mayores Dilatar / erosionar | +4 | entero (px) | Expande (positivo) o contrae (negativo) la máscara antes del inpainting Desplazamiento X / Y | 0 | entero (px) | Mueve la máscara en horizontal o vertical Modo de fusión de máscaras | None | None / Merge / Merge and Invert | Combina varias máscaras en una sola pasada de inpainting Fuerza de denoising del inpainting | 0.4 | 0.0–1.0 | Cuánto puede cambiar la región con inpainting; más bajo = más fiel al original Inpaint only masked | Activado | booleano | Limita la difusión a los píxeles enmascarados; recomendado para caras Padding del inpainting | 32 | entero (px) | Píxeles de contexto alrededor de la máscara que se pasan al sampler Modelo ControlNet | None | inpaint, scribble, lineart, openpose, tile, depth | Añade guía estructural durante el inpainting; el preprocesador se elige automáticamente Todos los valores por defecto provienen del esquema de argumentos de ADetailer en adetailer/args.py. La guía de ThinkDiffusion señala que valores de umbral bajos (p. ej., 0.3) son aconsejables para detectar caras; súbelo si aparecen falsos positivos en texturas del fondo (guía de ThinkDiffusion).

[Load Image] → [UltralyticsDetectorProvider(bbox/face_yolov8m.pt)] → [BBox Detector] → [FaceDetailer] → [Preview/Save]

Añade un SAMLoader y un SAMDetector (combined) entre el BBox Detector y FaceDetailer para cambiar las cajas rectangulares por siluetas precisas. El README del Impact Pack documenta esta combinación: el detector BBox localiza las caras, el detector SAM extrae el segmento relacionado con cada cara, y un nodo Segs & Mask intersecciona ambas máscaras para que solo el contorno facial se mejore (Impact Pack README). El tutorial de detectores explica que SAMLoader (Impact) carga el modelo SAM que usa esta cadena (tutorial de detectores).

Flujo multipasada (2Pass)

Conecta un segundo FaceDetailer (pipe) después del primero. La primera pasada usa ajustes moderados para reconstruir el contorno básico; la segunda refina el detalle. El README del Impact Pack describe FaceDetailer (pipe) como la variante hecha "for multipass" — agrupa modelo, VAE y condicionamiento en un único DETAILER_PIPE para que no repitas entradas (Impact Pack README).

Soporte de AnimateDiff / vídeo

El tutorial de detailers del Impact Pack lista los nodos Detailer For AnimateDiff y SEGSDetailer For AnimateDiff para mejorar fotogramas en flujos de AnimateDiff (tutorial de detailers).

Cuándo usar detailers en lugar de inpainting manual

Situación | Inpainting manual | ADetailer / FaceDetailer

|-----------|-------------------|--------------------------

Una o dos fallas obvias por imagen | Rápido, control total | La sobrecarga no compensa Lote de 50+ imágenes con fallas parecidas | Impracticable | Un clic por imagen o el lote completo Caras más pequeñas que ~64 px en el encuadre | Difícil enmascarar con precisión | El modelo de detección las encuentra con fiabilidad Manos y caras que necesitan arreglo a la vez | Dos pasadas de máscara separadas | Dos pestañas / nodos de detector en una ejecución Necesitas la misma máscara exacta entre fotogramas (vídeo) | Casi imposible | Simple Detector for Video + máscara pivote Quieres que el fondo quede intacto | Fácil con un pincelado cuidadoso | Requiere intersección de SAM + BBox Regla práctica: si abrirías la pestaña Inpaint más de tres veces por sesión, un detailer amortiza su tiempo de configuración.

Errores comunes y soluciones

Síntoma | Causa | Solución

|---------|-------|-----

Caras ilegibles a 512×512 o menos | Demasiados pocos píxeles en la región facial para el modelo base | Activa ADetailer o FaceDetailer; el detailer escala el recorte a guide_size antes del inpainting Manos deformadas en planos de cuerpo completo | Al modelo base le faltan datos de entrenamiento de manos | Añade una segunda pestaña de ADetailer con hand_yolov8n.pt o un segundo FaceDetailer alimentado por un detector de manos La mejora se derrama al fondo | La máscara bbox rectangular incluye hombros/pelo | Inserta SAMLoader + SAMDetector (combined) e intersecciona con la máscara BBox vía Segs & Mask ReActor: AttributeError: 'NoneType' object has no attribute 'get' | inswapper_128.onnx corrupto o ausente | Vuelve a descargarlo de HuggingFace datasets/Gourieff/ReActor y reemplázalo en ComfyUI/models/insightface/ (ReActor README) ReActor Masking Helper no encuentra caras | Falta face_yolov8m.pt o el modelo SAM | Coloca face_yolov8m.pt en ComfyUI/models/ultralytics/bbox/ y sam_vit_b_01ec64.pth en ComfyUI/models/sams/ (ReActor README) ADetailer: "img2img inpainting with skip img2img is not supported" | Skip img2img activado en una tarea img2img inpaint | Desactiva Skip img2img en las opciones de ADetailer cuando uses el modo img2img

FAQ

¿Qué umbral de confianza debo usar para la detección de caras en ADetailer? Empieza con el valor por defecto, 0.3. Más bajo (p. ej., 0.2) captura más caras — incluidos falsos positivos en texturas. Más alto (p. ej., 0.5) si el fondo recibe inpainting por error.

¿Cuántos modelos de ADetailer puedo ejecutar a la vez? Dos pestañas por defecto. Cambia la opción ad_max_models en los ajustes de la WebUI para permitir más; cada modelo adicional añade una pasada completa de detectar → enmascarar → inpainting.

¿Por qué necesito SAM para FaceDetailer? Las cajas delimitadoras son rectángulos; las caras no. SAM convierte cada caja en una silueta que abraza la mandíbula y el nacimiento del pelo, así el inpainting se queda dentro de la cara.

¿Cuál es la diferencia entre ADetailer y el inpainting manual? El inpainting manual te permite colocar la máscara exactamente donde quieres. ADetailer la coloca donde un detector cree que está el objeto. Para caras y manos a baja resolución, el detector suele ser más consistente que una pincelada apurada.

¿Puede ADetailer corregir los ojos específicamente? ADetailer no incluye ningún modelo dedicado a ojos. Los modelos de cara cubren toda la región facial; el detalle de los ojos mejora como efecto secundario de la pasada de inpainting facial.

¿Cómo actualizo los modelos YOLO cuando salen versiones nuevas? Vuelve a descargar los archivos .pt desde huggingface.co/Bingsu/adetailer (ADetailer) o desde la lista de modelos de ComfyUI-Manager (Impact Pack). Sobrescribe los archivos antiguos y reinicia la interfaz.

Enlace interno: fundamentos del inpainting automático Enlace interno: comparación de modelos YOLO Enlace interno: guía de nodos personalizados de ComfyUI Enlace interno: tutorial de ReActor face swap Enlace interno: ControlNet para inpainting