Consistencia facial en ComfyUI: InstantID, FaceID o ReActor

"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.
| Ruta | Función | Caso de uso | Entrada | Restricción de modelo | Complejidad de dependencias |
|---|---|---|---|---|---|
| InstantID | Mantener la identidad durante la generación | Generar desde cero varias imágenes del mismo rostro | Una imagen facial de referencia | ComfyUI_InstantID está orientado actualmente a SDXL | Alta (InsightFace + onnxruntime + antelopev2 + ControlNet + modelo principal de InstantID) |
| IPAdapter FaceID | Mantener la identidad durante la generación | Generar desde cero varias imágenes del mismo rostro | Una o varias imágenes faciales de referencia | SD1.5 + SDXL | Media (InsightFace + modelo FaceID + LoRA correspondiente) |
| ReActor | Reemplazo facial posterior | Sustituir solo el rostro de una imagen existente | Imagen original + rostro objetivo | No depende del modelo base de generación | Depende 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.
| Modelo | Ruta de destino | Fuente |
|---|---|---|
| antelopev2 | ComfyUI/models/insightface/models/antelopev2 | Modelo de InsightFace |
| Modelo principal de InstantID | ComfyUI/models/instantid | InstantX en Hugging Face |
| ControlNet de InstantID | ComfyUI/models/controlnet | InstantX 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:
- Carga un checkpoint de SDXL
- Conecta el nodo Apply InstantID e introduce una imagen facial frontal
- Incorpora el modelo de InstantID y la condición de ControlNet a la cadena de muestreo
- 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íntoma | Dirección del ajuste |
|---|---|
| Poco parecido | Aumenta gradualmente el peso del modelo de InstantID o de ControlNet |
| Saturación excesiva o poco control del texto | Baja primero el peso del modelo de InstantID y compara con la imagen de referencia |
| CFG demasiado alto | Sigue 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 FaceID | LoRA correspondiente | Ruta |
|---|---|---|
ip-adapter-faceid_sd15.bin | ip-adapter-faceid_sd15_lora.safetensors | models/ipadapter + models/loras |
ip-adapter-faceid-plusv2_sd15.bin | ip-adapter-faceid-plusv2_sd15_lora.safetensors | Igual que arriba |
ip-adapter-faceid_sdxl.bin | ip-adapter-faceid_sdxl_lora.safetensors | Igual que arriba |
ip-adapter-faceid-plusv2_sdxl.bin | ip-adapter-faceid-plusv2_sdxl_lora.safetensors | Igual 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.
| Modelo | Ruta en el README actual |
|---|---|
| buffalo_l | ComfyUI/models/insightface/models/buffalo_l |
| inswapper_128 | ComfyUI/models/insightface |
| reswapper | ComfyUI/models/reswapper |
| hyperswap | ComfyUI/models/hyperswap |
| Modelo de Face Restore | ComfyUI/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:
- Conecta la imagen que vas a procesar a
input_imagey la referencia autorizada asource_image - Empieza con una intensidad conservadora en ReActorSetWeight
- Opcional: comprueba el parecido posterior con Face Similarity
- Opcional: repara bordes y detalles con Face Restoration
- Opcional: guarda el face model para cargar después el embedding del mismo rostro
| Función | Descripción |
|---|---|
| ReActorSetWeight | Ajusta 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 Similarity | Comprueba el parecido del resultado |
| Face Restoration | Repara bordes y detalles; una intensidad alta también puede producir un aspecto plástico |
| Face Model | Guarda 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:
- Frontal > de perfil o inclinado
- Nítido > borroso
- Sin obstrucciones > gafas, mascarilla o flequillo sobre el rostro
- 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
| Problema | Causa posible | Qué revisar |
|---|---|---|
No se encuentra el modelo (antelopev2 / buffalo_l / modelo principal de InstantID) | Ruta incorrecta o modelo no descargado | Comprueba 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 tapado | Usa 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ón | La condición facial también transmite parte de la estructura | Controla la pose con ControlNet o usa ReActor sobre una imagen ya terminada |
| Poco parecido | Falta la LoRA de FaceID, el peso no es adecuado o la referencia es mala | Revisa 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ástico | Intensidad excesiva en ReActor o Face Restoration | Reduce el reemplazo y la restauración; revisa el tamaño, el ángulo y la iluminación del rostro objetivo |
| Error al instalar dependencias | Mezcla de tutoriales antiguos, nodos viejos y el entorno actual de Python | Confirma 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:
- ControlNet en ComfyUI: OpenPose, Canny y Depth para controlar composición y pose
- Reutilizar flujos de ComfyUI: nodos personalizados, rutas de modelos y nodos faltantes
- LoRA en ComfyUI: carga, pesos, múltiples LoRA y consistencia de personajes
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:
- Si la pose se desvía o necesitas una composición estricta → ControlNet en ComfyUI
- Si quieres reutilizar de forma estable un personaje original → LoRA en ComfyUI
- Si necesitas ampliar o retocar zonas después del reemplazo → Escalado e inpainting en ComfyUI
- Si fallan los nodos o las rutas de modelos → Reutilizar flujos de ComfyUI
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
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
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
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
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
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
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?
¿Por qué IPAdapter FaceID también necesita una LoRA?
¿InstantID solo funciona con SDXL en ComfyUI?
¿ReActor 0.7 todavía necesita InsightFace y C++ Build Tools?
¿Se puede usar comercialmente el reemplazo facial en ComfyUI?
¿Por qué el rostro queda con aspecto plástico después del reemplazo?
14 min de lectura · Publicado el: 21 ago 2026 · Actualizado el: 21 ago 2026
Guía práctica de ComfyUI y Stable Diffusion
Si llegaste desde búsqueda, lo más rápido es ir al artículo anterior o siguiente de esta misma serie.
Anterior
FLUX.1 Kontext en ComfyUI: edición iterativa y personajes consistentes
Configura FLUX.1 Kontext Dev en ComfyUI, define qué conservar, edita por etapas, retrocede cuando aparezca deriva y elige la herramienta adecuada.
Parte 8 de 13
Siguiente
Ampliar y reparar imágenes en ComfyUI: Hires Fix, FaceDetailer e inpainting
Compara upscaling de píxeles, remuestreo latente, FaceDetailer, inpainting y mosaicos, y corrige cambios de rostro, uniones visibles y desbordes de la máscara.
Parte 10 de 13



Comentarios
Inicia sesión con GitHub para dejar un comentario