Cambiar tema

Consistencia facial en ComfyUI: InstantID, FaceID o ReActor

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

"El README de ComfyUI_InstantID de cubiq documenta el alcance de SDXL, antelopev2, las carpetas de modelos, CFG y el control por puntos clave."

Tienes una foto frontal autorizada de una modelo y quieres generar varias imágenes de la misma persona en escenarios distintos. O quizá ya tienes un cartel terminado y solo quieres cambiar el rostro por el de un personaje virtual original. Son necesidades diferentes: la primera inyecta la identidad durante la generación; la segunda reemplaza el rostro en el posprocesamiento.

Las tres soluciones habituales en ComfyUI son InstantID, IPAdapter FaceID y ReActor. Aunque sus nombres se parecen, cumplen funciones distintas. El nodo de InstantID para ComfyUI está orientado a SDXL y tiene más dependencias; FaceID cubre SD1.5 y SDXL, pero exige combinar bien el modelo y la LoRA; ReActor reemplaza el rostro después de la generación y no interviene en el proceso de difusión.

Para elegir, identifica primero si la necesidad aparece durante la generación o en el posprocesamiento. Después revisa las dependencias, los ajustes, los errores frecuentes y los límites de uso del material.

1. Comparativa: identidad durante la generación o reemplazo posterior

Empieza con una pregunta: ¿quieres generar desde cero varias imágenes de la misma persona o ya tienes una imagen final y solo deseas cambiar el rostro? La respuesta determina la ruta.

RutaFunciónCaso de usoEntradaRestricción de modeloComplejidad de dependencias
InstantIDMantener la identidad durante la generaciónGenerar desde cero varias imágenes del mismo rostroUna imagen facial de referenciaComfyUI_InstantID está orientado actualmente a SDXLAlta (InsightFace + onnxruntime + antelopev2 + ControlNet + modelo principal de InstantID)
IPAdapter FaceIDMantener la identidad durante la generaciónGenerar desde cero varias imágenes del mismo rostroUna o varias imágenes faciales de referenciaSD1.5 + SDXLMedia (InsightFace + modelo FaceID + LoRA correspondiente)
ReActorReemplazo facial posteriorSustituir solo el rostro de una imagen existenteImagen original + rostro objetivoNo depende del modelo base de generaciónDepende de la versión (el nuevo núcleo alfa 0.7 ya no obliga a usar InsightFace, pero hay que revisar modelos y licencias)

Cómo decidir

  • Para generar desde cero varias imágenes de la misma persona → InstantID o FaceID
  • Si ya existe una imagen final y solo quieres cambiar el rostro → ReActor
  • Si solo tienes una referencia facial → las tres opciones pueden usarla, pero InstantID y FaceID son más adecuados para controlar la generación
  • Si quieres reemplazar el rostro sin cambiar la pose ni la composición final → ReActor es más directo

Aviso previo sobre licencias

InstantID y FaceID suelen depender de InsightFace para extraer rasgos faciales. El código de InsightFace usa licencia MIT, pero sus datos de entrenamiento y los modelos entrenados con ellos están destinados de forma predeterminada a investigación no comercial. La tarjeta del modelo FaceID también limita los modelos correspondientes a investigación. ReActor se presenta como compatible con contenido SFW, incluye un detector de desnudez y exige un uso responsable en su README.

Antes de publicar o comercializar un resultado, revisa por separado la autorización de imagen, la licencia de los pesos y las reglas de la plataforma. Este artículo solo aborda material propio o autorizado, personajes originales y pruebas internas.

2. InstantID: identidad durante la generación con SDXL

2.1 Instalación y rutas de modelos

InstantID tiene más dependencias que FaceID y ReActor. Después de instalar el nodo, las rutas de los modelos son el punto que más errores provoca.

Pasos de instalación:

# 1. Clonar el nodo
cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_InstantID.git

# 2. Instalar las dependencias
pip install insightface onnxruntime onnxruntime-gpu

El paquete predeterminado de Python de InsightFace 1.0 ya no compila la extensión opcional face3d en C++/Cython, por lo que reduce los requisitos de compilación local. Si un entorno o tutorial antiguo todavía produce errores de compilación, comprueba primero la versión real y usa un entorno virtual independiente; no des por hecho que la versión actual exige Visual Studio C++ Build Tools.

ModeloRuta de destinoFuente
antelopev2ComfyUI/models/insightface/models/antelopev2Modelo de InsightFace
Modelo principal de InstantIDComfyUI/models/instantidInstantX en Hugging Face
ControlNet de InstantIDComfyUI/models/controlnetInstantX en Hugging Face

El README actual de ComfyUI_InstantID indica que el nodo solo se usa con SDXL. Si el flujo está basado en SD1.5, debes pasar a FaceID.

El repositorio ComfyUI_InstantID está en modo de mantenimiento desde el 14 de abril de 2025. Todavía puede aceptar correcciones importantes, pero su responsable ya no promete desarrollo continuo. Comprueba el README vigente antes de instalarlo.

2.2 Flujo y ajustes

Flujo básico:

  1. Carga un checkpoint de SDXL
  2. Conecta el nodo Apply InstantID e introduce una imagen facial frontal
  3. Incorpora el modelo de InstantID y la condición de ControlNet a la cadena de muestreo
  4. Genera la imagen

La calidad de la referencia influye directamente en el parecido final. Una imagen frontal, nítida, sin obstrucciones y con luz uniforme suele ser más estable. Un rostro de perfil, pequeño, borroso o muy tapado puede no detectarse o producir poco parecido.

SíntomaDirección del ajuste
Poco parecidoAumenta gradualmente el peso del modelo de InstantID o de ControlNet
Saturación excesiva o poco control del textoBaja primero el peso del modelo de InstantID y compara con la imagen de referencia
CFG demasiado altoSigue el README del nodo y bájalo aproximadamente a 4-5, o usa RescaleCFG

La ruta principal de la implementación original de InstantID no admite referencias de varias personas y solo usa los puntos clave del rostro más grande. ComfyUI_InstantID ofrece además un flujo Multi-ID más complejo y lento, pero no debe considerarse una solución multiusuario simple y estable.

Funciones avanzadas del nodo:

  • Advanced InstantID: permite ajustar por separado los pesos del modelo de InstantID y de ControlNet
  • Noise injection: ayuda a reducir imágenes demasiado quemadas y a afinar el parecido
  • Entrada image_kps: usa los puntos clave de otra imagen para cambiar la pose y reducir la influencia de la pose de referencia

Para controlar la pose con más precisión, puedes combinarlo con ControlNet OpenPose.

3. IPAdapter FaceID: identidad durante la generación en SD1.5 y SDXL

FaceID es la variante facial de la familia IPAdapter. Utiliza un embedding de reconocimiento facial en lugar de un embedding de imagen CLIP convencional y puede reforzar la identidad mediante una LoRA.

3.1 Instalación y combinación de modelos

Instala primero la dependencia dentro del entorno de Python de ComfyUI:

pip install insightface

Coloca los modelos FaceID en ComfyUI/models/ipadapter y las LoRA correspondientes en ComfyUI/models/loras. Unified Loader FaceID usa los nombres oficiales para emparejarlos automáticamente; un nombre incorrecto impide la carga.

Modelo FaceIDLoRA correspondienteRuta
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 que arriba
ip-adapter-faceid_sdxl.binip-adapter-faceid_sdxl_lora.safetensorsIgual que arriba
ip-adapter-faceid-plusv2_sdxl.binip-adapter-faceid-plusv2_sdxl_lora.safetensorsIgual que arriba

La lista y los nombres concretos pueden cambiar cuando se actualice el nodo. Antes de instalar, consulta el README de ComfyUI_IPAdapter_plus y comprueba que el modelo y la LoRA correspondan al modelo base y a la versión. Omitir la LoRA o usar una incorrecta reduce notablemente la consistencia.

Diferencias entre versiones:

  • PlusV2: combina el embedding de identidad facial con un embedding de imagen CLIP ajustable y permite modificar el peso de la estructura del rostro
  • Portrait: está orientado a retratos, no requiere LoRA ni ControlNet y acepta varias imágenes faciales para mejorar el parecido
  • FaceID para SDXL y PlusV2-SDXL: la tarjeta del modelo los marca como experimentales, así que no deben tratarse como soluciones absolutamente estables

El repositorio ComfyUI_IPAdapter_plus también está en modo de mantenimiento desde el 14 de abril de 2025.

3.2 Flujo y ajustes

El peso de FaceID no tiene que comenzar en 1.0. Un peso de identidad demasiado alto puede acercar el resultado a la referencia, pero también debilitar el control del prompt.

Direcciones de ajuste:

  • Empieza con un valor cercano a 0.8 y aumenta gradualmente si el parecido no basta
  • Si necesitas mayor fidelidad al prompt, cambia el tipo de peso en IPAdapter Advanced o reduce el peso
  • PlusV2 también permite ajustar por separado el peso relacionado con la estructura facial

FaceID e InstantID aportan una condición de identidad durante la generación. FaceID funciona con SD1.5 y SDXL, mientras que el nodo actual de ComfyUI_InstantID está orientado a SDXL. El uso de VRAM depende del modelo base, la resolución, la GPU y la versión del nodo, por lo que no conviene resumirlo en una cifra fija.

4. ReActor: reemplazo facial SFW en el posprocesamiento

ReActor cumple una función distinta: no participa en la difusión, sino que reemplaza el rostro de una imagen existente o ya generada.

4.1 Instalación y cambios de dependencias

El nuevo núcleo alfa de ReActor 0.7.0 declara que ya no necesita InsightFace ni C++ Build Tools. Sin embargo, la tabla de modelos y el apartado de licencias del README actual aún incluyen buffalo_l, inswapper_128.onnx y otros modelos. La instalación y la autorización deben revisarse según la versión vigente.

ModeloRuta en el README actual
buffalo_lComfyUI/models/insightface/models/buffalo_l
inswapper_128ComfyUI/models/insightface
reswapperComfyUI/models/reswapper
hyperswapComfyUI/models/hyperswap
Modelo de Face RestoreComfyUI/models/facerestore_models

Los tutoriales antiguos suelen presentar InsightFace y C++ Build Tools como requisitos fijos. Si las instrucciones se contradicen, comprueba primero la versión de ReActor y sigue su README, sin mezclar los pasos de dependencias de tutoriales antiguos.

ReActor incluye un detector de desnudez. Su README exige obtener el consentimiento de las personas cuando se usan rostros reales y revelar de forma clara la naturaleza sintética del contenido publicado. Las licencias comerciales de buffalo_l, inswapper_128 y otros modelos deben confirmarse por separado.

4.2 Flujo

Pasos básicos para reemplazar un rostro:

  1. Conecta la imagen que vas a procesar a input_image y la referencia autorizada a source_image
  2. Empieza con una intensidad conservadora en ReActorSetWeight
  3. Opcional: comprueba el parecido posterior con Face Similarity
  4. Opcional: repara bordes y detalles con Face Restoration
  5. Opcional: guarda el face model para cargar después el embedding del mismo rostro
FunciónDescripción
ReActorSetWeightAjusta la intensidad entre 0 % y 100 % según los pasos del nodo; un valor excesivo puede producir un rostro plástico o bordes poco naturales
Face SimilarityComprueba el parecido del resultado
Face RestorationRepara bordes y detalles; una intensidad alta también puede producir un aspecto plástico
Face ModelGuarda o carga el embedding facial para reutilizar el mismo rostro

ReActor no vuelve a generar la composición, la ropa ni la pose de la imagen. Si quieres conservar todo el contenido de una imagen terminada y modificar solo el área facial, es más directo que InstantID o FaceID.

5. Calidad de la referencia y errores frecuentes

5.1 Lista para evaluar la referencia

La calidad de la referencia suele ser más importante que seguir acumulando peso. Una imagen frontal, nítida, sin obstrucciones y con luz uniforme suele dar resultados más estables. Un rostro de perfil, borroso, pequeño o muy tapado no se corrige por completo aunque subas el peso.

Orden de prioridad:

  1. Frontal > de perfil o inclinado
  2. Nítido > borroso
  3. Sin obstrucciones > gafas, mascarilla o flequillo sobre el rostro
  4. Luz uniforme > sombras intensas o contraluz

Este criterio se aplica a las referencias faciales de InstantID, FaceID y ReActor. Si la detección falla, recorta primero el rostro o cambia la referencia; no subas todos los pesos al máximo.

5.2 Tabla de solución de problemas

ProblemaCausa posibleQué revisar
No se encuentra el modelo (antelopev2 / buffalo_l / modelo principal de InstantID)Ruta incorrecta o modelo no descargadoComprueba models/insightface/models, models/instantid y las demás carpetas en el README vigente del nodo
Falla la detección (no face detected)Rostro de perfil, pequeño, borroso o tapadoUsa una referencia frontal, nítida y sin obstrucciones; recorta el rostro si hace falta
El rostro se parece, pero cambia la pose o la expresiónLa condición facial también transmite parte de la estructuraControla la pose con ControlNet o usa ReActor sobre una imagen ya terminada
Poco parecidoFalta la LoRA de FaceID, el peso no es adecuado o la referencia es malaRevisa la combinación de modelo y LoRA, crea una base cerca de 0.8 y ajusta un parámetro cada vez
Bordes extraños o aspecto plásticoIntensidad excesiva en ReActor o Face RestorationReduce el reemplazo y la restauración; revisa el tamaño, el ángulo y la iluminación del rostro objetivo
Error al instalar dependenciasMezcla de tutoriales antiguos, nodos viejos y el entorno actual de PythonConfirma primero las versiones del nodo y de InsightFace y sigue el README actual en un entorno independiente

Orden de diagnóstico:

  • Si falla la detección → revisa primero la calidad de la referencia
  • Si falta parecido → revisa primero los modelos, la LoRA y las rutas
  • Si la pose se desvía → distingue entre identidad durante la generación y reemplazo posterior; después añade ControlNet o cambia de ruta

6. Límites al combinar ControlNet, Kontext y LoRA

Fijar un rostro no fija la pose, el cuerpo, la ropa ni la composición. Cuando InstantID y FaceID inyectan una condición de identidad, la pose, la expresión o el peinado de la referencia también pueden influir en el resultado.

Combinaciones recomendadas:

  • InstantID o FaceID + ControlNet OpenPose → la condición facial controla la identidad y ControlNet controla el cuerpo y la pose
  • FaceID + IPAdapter convencional → FaceID fija el rostro y el otro IPAdapter controla el estilo o la composición; empieza con valores conservadores en ambas rutas
  • ReActor + restauración en alta resolución → genera primero la imagen, reemplaza después el rostro y aplica face restore o inpaint local solo cuando sea necesario
  • Kontext → sirve para cambiar fondo, ropa o escena sobre una misma imagen, pero no es una solución especializada en bloquear la identidad facial
  • LoRA → conviene para reutilizar a largo plazo un personaje original o una persona virtual de marca, pero requiere conjunto de datos y entrenamiento

Si la pose debe ser exacta, aporta una imagen de pose a ControlNet OpenPose: InstantID o FaceID se encarga del rostro y ControlNet del cuerpo. Si solo quieres mantener la composición de una imagen final y cambiar el rostro, ReActor es más directo.

Artículos relacionados:

7. Límites legales y de licencia

La licencia y la procedencia del material son límites críticos. Que una técnica funcione no significa que el material, los modelos y la publicación estén autorizados.

Distingue la licencia del código y la de los modelos de InsightFace

El código de InsightFace usa licencia MIT y permite usos académicos y comerciales. Sin embargo, sus datos de entrenamiento y los modelos preentrenados con ellos están destinados de forma predeterminada a investigación no comercial. El README actual de InsightFace también ofrece contactos de licencia distintos para la familia inswapper y para los modelos abiertos de reconocimiento facial.

La tarjeta del modelo FaceID indica además que IP-Adapter-FaceID es solo para investigación porque depende de modelos preentrenados de InsightFace. No confundas la licencia del código del nodo con la autorización comercial de los pesos.

Responsabilidad y divulgación con ReActor

La versión actual de ReActor se presenta como compatible con SFW e incluye un detector de desnudez. Su README exige cumplir las leyes locales, obtener el consentimiento al usar rostros reales y revelar claramente que el contenido publicado ha sido alterado mediante reemplazo facial o IA.

Restricciones sobre el origen del material

Este artículo solo trata estos casos:

  • Fotos de modelos con autorización de imagen y uso
  • Material personal que has creado y tienes derecho a procesar
  • Personajes virtuales originales que no representan a una persona real
  • Pruebas internas conformes que no se publican

Antes de un uso comercial o una publicación, revisa por separado la autorización de imagen, la licencia de los modelos y las reglas de la plataforma. Si no puedes confirmar cualquiera de esos puntos, no publiques ni comercialices el resultado.

Resumen y siguiente paso

La decisión principal es sencilla:

  • Identidad durante la generación → InstantID (el nodo actual de ComfyUI está orientado a SDXL) o FaceID (SD1.5 + SDXL)
  • Reemplazo facial posterior → ReActor
  • La calidad de la referencia, las rutas y la combinación de versiones tienen prioridad sobre subir los pesos sin criterio
  • Una licencia de código no garantiza que un modelo preentrenado sea comercial; los rostros reales también requieren autorización

InstantID encaja en flujos SDXL y tiene más dependencias, pero permite controlar por separado la identidad y los puntos clave. FaceID admite más modelos base, aunque el modelo y la LoRA deben coincidir. ReActor no participa en la difusión y sirve para tratar el rostro de una imagen existente.

Puedes continuar con:

Elegir y ajustar un flujo de consistencia facial en ComfyUI

Elige la ruta según la etapa del proceso, revisa la referencia, las carpetas y las versiones, y modifica un solo peso cada vez.

  1. 1

    Step 1: Define en qué etapa ocurre la tarea

    Elige InstantID o IPAdapter FaceID para generar imágenes nuevas a partir de un rostro; elige ReActor si ya tienes la imagen y solo reemplazarás el rostro.
  2. 2

    Step 2: Prepara una referencia válida y autorizada

    Prioriza una imagen frontal, nítida, sin obstrucciones, con luz uniforme y un rostro suficientemente grande, y confirma los derechos sobre el retrato y el material.
  3. 3

    Step 3: Instala los modelos y las dependencias de la ruta

    Para InstantID revisa antelopev2, el modelo principal y ControlNet; para FaceID, insightface, el modelo FaceID y su LoRA; para ReActor, sigue el README de la versión actual.
  4. 4

    Step 4: Crea un resultado de referencia

    Genera primero una imagen con valores predeterminados o conservadores. No cambies a la vez la pose, la expresión, el peinado, el modelo base y varios pesos de identidad.
  5. 5

    Step 5: Ajusta según el síntoma

    Si falta parecido, aumenta gradualmente el peso de identidad o revisa la combinación; si el prompt pierde fuerza, baja el peso del Adapter; si el rostro parece plástico, reduce el reemplazo y la restauración.
  6. 6

    Step 6: Añade control de pose o de personaje

    Combina ControlNet cuando necesites una pose precisa; para reutilizar a largo plazo un personaje original, evalúa entrenar una LoRA en vez de delegar todo el control a una referencia facial.

FAQ

¿Conviene usar InstantID o ReActor para mantener a la misma persona en ComfyUI?
Para generar imágenes nuevas a partir de un rostro, usa primero InstantID o IPAdapter FaceID; si la imagen ya está terminada y solo quieres reemplazar el rostro, usa ReActor.
¿Por qué IPAdapter FaceID también necesita una LoRA?
FaceID aporta la condición de identidad mediante un embedding de reconocimiento facial, y la mayoría de sus modelos necesitan una LoRA correspondiente para reforzar la consistencia. El modelo y la LoRA deben coincidir con el modelo base y la versión.
¿InstantID solo funciona con SDXL en ComfyUI?
El README actual de cubiq/ComfyUI_InstantID indica que el nodo está pensado únicamente para SDXL y requiere antelopev2, el modelo principal de InstantID y un modelo ControlNet. Para otras implementaciones o versiones futuras, consulta sus instrucciones.
¿ReActor 0.7 todavía necesita InsightFace y C++ Build Tools?
El nuevo núcleo alfa de ReActor 0.7 declara que ya no requiere InsightFace ni C++ Build Tools, aunque la lista actual de modelos y las notas de licencia siguen mencionando buffalo_l, inswapper_128 y otros modelos. Revisa el README vigente para instalarlo y evaluar su uso comercial.
¿Se puede usar comercialmente el reemplazo facial en ComfyUI?
No basta con revisar la licencia del código del nodo. También debes confirmar la autorización de imagen, el contexto de uso, las reglas de la plataforma y las licencias de modelos preentrenados como InsightFace, inswapper y FaceID. Si hay dudas, no lo uses para una publicación comercial.
¿Por qué el rostro queda con aspecto plástico después del reemplazo?
Las causas habituales son una intensidad excesiva de reemplazo o restauración, un rostro objetivo demasiado pequeño o diferencias de ángulo e iluminación. Reduce primero la restauración y prueba una referencia autorizada más nítida y con un ángulo parecido.

14 min de lectura · Publicado el: 21 ago 2026 · Actualizado el: 21 ago 2026

Comentarios

Inicia sesión con GitHub para dejar un comentario

Easton BlogEaston Blog