top of page

Serie ComfyUI (IV) — Workflow de cambio de cara (Face Swap con ReActor)

  • josejotxe
  • 13 dic 2025
  • 8 Min. de lectura

Continuamos la serie dedicada a ComfyUI, la herramienta visual para crear y automatizar flujos de IA en local. En esta cuarta entrega aprenderás a construir y ejecutar un workflow para cambiar la cara de una persona por la de otra dentro de una imagen, de forma rápida, precisa y totalmente local.


Para ello utilizaremos ReActor, uno de los módulos más potentes para face swap dentro de ComfyUI. Este módulo permite cargar un rostro origen, analizarlo con modelos especializados y sustituirlo en la imagen base, manteniendo iluminación, perspectiva y coherencia visual.


Workflow ComfyUI para cambio de caras
Workflow ComfyUI para cambio de caras

El flujo que usaremos se llama: 📁 WF_ComfyUI_CambioDeCara.json Y podrás descargarlo al final del artículo para cargarlo directamente en tu ComfyUI


🎯 Qué vas a lograr

  • Cambiar el rostro de una persona por el de otra directamente en tu equipo.

  • Ejecutar un workflow de face swap 100% local, sin subir imágenes a la nube.

  • Usar el módulo ReActor para obtener reemplazos limpios y coherentes.

  • Cargar y combinar imágenes base y rostros con total control.

  • Ajustar parámetros del modelo facial para obtener resultados más naturales.

  • Guardar automáticamente tu imagen final con el nuevo rostro.

  • Entender cada nodo del workflow para reutilizarlo, ampliarlo o integrarlo en otros proyectos.


🧩 Requisitos

Para ejecutar este flujo necesitarás tener instalados los siguientes componentes:

  • 💻 ComfyUI funcionando correctamente.

  • 🧠 comfyui-reactor-node — módulo ReActor para face swap.

  • 🖼️ Dos imágenes:

    • Una imagen base (donde se cambiará la cara).

    • Una imagen rostro (cara que sustituirá a la de la imagen base).

  • 💾 Espacio para guardar los resultados (ComfyUI/output/).


⚙️ Instalación de ReActor

Puedes instalar el nodo directamente desde Pinokio:

  • En ComfyUI → Custom Nodes, busca:

    • comfyui-reactor-node

    • Pinokio lo instalará automáticamente en la carpeta adecuada.


💡 Nota práctica

Si cargas este workflow y falta algún nodo, ComfyUI te avisará automáticamente. Desde el mensaje puedes abrir directamente la pestaña Custom Nodes e instalar el nodo faltante con un clic.


🗂️ Crear o cargar el workflow en ComfyUI

Tienes dos maneras de trabajar con este flujo:

🅰️ Opción A — Cargar el workflow ya creado

  1. Descarga el archivo JSON adjunto:📁 WF_ComfyUI_CambioDeCara.json


  1. Abre ComfyUI.

  2. En el menú superior, selecciona: Workflow → Load

  3. Elige el archivo descargado. Verás aparecer en el lienzo todos los nodos conectados y configurados. Puedes hacer zoom y arrastrar con el ratón para explorarlos.

Screenshot: Cargar un workflow desde un archivo JSON
Cargar un workflow desde un archivo JSON

🅱️ Opción B — Crear el workflow desde cero

Si prefieres aprender cómo se construye paso a paso, puedes partir de un flujo vacío y añadir los nodos uno a uno siguiendo las indicaciones de la siguientes secciones de este artículo, donde te explicamos en detalle qué hace cada bloque, cómo se conecta y qué parámetros conviene modificar en cada uno.


Screenshot: Empezar un nuevo workflow
Empezar un nuevo workflow

⚙️ El workflow: estructura general

Este flujo carga dos imágenes (base y rostro), un modelo facial y ejecuta el reemplazo mediante ReActor.

Nodo

Función principal

1️⃣

Load Image – Imagen Base

Carga la imagen donde se realizará el cambio de cara.

2️⃣

Load Image – Rostro

Carga la imagen cuyo rostro se utilizará en la sustitución.

3️⃣

ReActorLoadFaceModel

Carga el modelo facial (.safetensors) que define los rasgos y la precisión del swap.

4️⃣

ReActorFaceSwap

Realiza la sustitución del rostro combinando la imagen base, la imagen rostro y el modelo.

5️⃣

PreviewImage

Muestra el resultado en ComfyUI.

6️⃣

SaveImage

Guarda automáticamente la imagen final.

7️⃣

CR Text

Comentarios internos con instrucciones del workflow.

🧱 Entendiendo el workflow paso a paso

A continuación explicamos los nodos que componen este flujo para que puedas entender cómo funciona internamente el proceso de face swap con ReActor.

 Cada nodo cumple un papel concreto dentro del pipeline.


1️⃣ Load Image – Imagen Base

Qué hace: carga la imagen original sobre la que quieres reemplazar el rostro.

 • Qué tocar: selecciona la foto base (persona, personaje, retrato…).

 • Conexiones del nodo: su salida IMAGE se conecta a la entrada input_image del nodo ReActorFaceSwap.


2️⃣ Load Image – Rostro

Qué hace: carga la imagen del rostro que quieres insertar en la imagen base.

 • Qué tocar: elige una foto clara, frontal o ligeramente de perfil, del rostro origen.

 • Conexiones del nodo: su salida IMAGE se conecta a la entrada source_image del nodo ReActorFaceSwap.


3️⃣ ReActorLoadFaceModel

Qué hace: Carga el modelo facial que ReActor utilizará para reconocer, reconstruir y fusionar el rostro en la imagen destino. Estos modelos contienen información sobre proporciones, geometría facial, detección de landmarks, blending avanzado y reconstrucción 3D ligera. En pocas palabras: definen cómo se interpreta el rostro y cómo se integra en la imagen base.

Qué tocar: En este nodo puedes seleccionar diferentes archivos .safetensors que cambiarán la calidad, realismo y estilo del face swap. El workflow viene configurado con: Ekanteeka.safetensors porque ofrece un equilibrio excelente entre velocidad, precisión y estabilidad visual.

Conexiones del nodo: Su salida FACE_MODEL se conecta al nodo ReActorFaceSwap, alimentándolo con el modelo facial que dictará cómo se realiza el intercambio.


creenshot: bloque "Load Face Model ReActor"
bloque "Load Face Model ReActor"

Modelos compatibles con ReActor y sus diferencias

ReActor permite utilizar distintos modelos faciales, que determinan el “estilo” o la precisión del intercambio. Aquí tienes un resumen de los más habituales:

🔹 Ekanteeka.safetensors (el que usamos en este workflow)

Ventajas:

  • Gran estabilidad en rostros complejos.

  • Excelente reconstrucción de facciones incluso en ángulos difíciles.

  • Muy natural en retratos realistas.

  • Blending suave entre piel, sombra y textura.

Ideal para: Fotos reales, retratos profesionales, escenas con iluminación variada.

Es uno de los modelos más equilibrados entre calidad y rendimiento.


🔹 inswapper_128.onnx (modelo principal del swap)

Este modelo no se carga con ReActorLoadFaceModel, sino dentro del nodo ReActorFaceSwap, pero funciona en combinación con el modelo facial.

Ventajas:

  • Muy rápido.

  • Resultados sólidos en la mayoría de los casos.

  • Excelente para rostros centrados.

Ideal para: Cambios de cara rápidos y situaciones controladas.


🔹 GFPGAN / Restore Models

Aunque no son modelos de swap propiamente dichos, pueden combinarse para mejorar la nitidez del rostro después del intercambio.

Ventajas:

  • Mejora detalles finos (ojos, labios, piel).

  • Perfecto para imágenes de baja resolución.

Ideal para: Composiciones con rostros algo borrosos o imágenes resultantes que necesiten un refinado extra.


🔹 Modelos personalizados de la comunidad (ReActor+)

Hay modelos creados por la comunidad que afectan principalmente al blending y a la expresividad facial.

Algunos efectos comunes:

  • Mejor conservación de expresiones.

  • Estilos más cinematográficos.

  • Mejor emparejamiento de tono de piel.

Ideal para: Proyectos creativos, cine, contenido digital.


4️⃣ ReActorFaceSwap

Este es el nodo central del workflow: el encargado de realizar el intercambio de rostro combinando la imagen base, la imagen rostro y el modelo facial.


Qué hace: es el núcleo del workflow. Realiza la sustitución facial combinando:

  • input_image → imagen base

  • source_image → rostro que queremos usar

  • face_model → modelo facial cargado antes


Qué tocar: Puedes ajustar parámetros como:

  • enabled: para habilitar o no el cambio de rostro.

  • Modelo de intercambio (inswapper_128.onnx).

    • Es el modelo que realiza el intercambio real del rostro.

    • Podrías cambiarlo por otros modelos basados en el Inswapper (inswapper_256.onnx → más detalle, más lento, inswapper_128_fp16.onnx → optimizado para GPUs modernas)

  • Detector de rostros (por defecto YOLOv5l): detecta la cara dentro de la imagen base.

  • Modelo de mejora (GFPGANv1.4.pth): refina el rostro resultante, aumentando nitidez y corrigiendo artefactos.

  • Intensidad del face swap (face boost): 1.0 es un swap completo, y un 0.0 es un blending extremadamente sutil.

  • Blend Factor: define cómo se mezcla la textura de piel entre el rostro nuevo y la imagen base. Es un valor entre 0 y 1. Recomendable usar 0.5.

  • Género del rostro origen/destino (male, female, no)

Conexiones del nodo:

  • Recibe las 3 entradas principales

  • Su salida IMAGE va a PreviewImage y SaveImage


5️⃣ PreviewImage

Qué hace: muestra el resultado final del swap antes de guardarlo.

 • Qué tocar: nada. Es simplemente visualización.

 • Conexiones del nodo: recibe la salida IMAGE desde ReActorFaceSwap.


6️⃣ SaveImage

Qué hace: guarda la imagen procesada en la carpeta de salida (ComfyUI/output/).

Qué tocar: puedes cambiar la ruta si deseas guardarlo en otro directorio.

Conexiones del nodo: recibe la salida IMAGE desde ReActorFaceSwap.


7️⃣ CR Text

Qué hace: proporciona un comentario dentro del propio workflow explicando su uso.

 • Qué tocar: nada; es puramente informativo.

 • Conexiones del nodo: no participa directamente en el procesamiento.


▶️ Cómo usarlo

1️⃣ Abre ComfyUI.

2️⃣ En el menú superior selecciona:Workflow → Load

3️⃣ Carga el archivo:📁 WF_ComfyUI_CambioDeCara.json

4️⃣ En Load Image – Imagen Base, selecciona la imagen donde quieres cambiar la cara.

5️⃣ En Load Image – Rostro, selecciona la imagen con el rostro que quieres insertar.

6️⃣ Asegúrate de que el modelo facial está cargado en ReActorLoadFaceModel.

7️⃣ Pulsa Run.

El workflow realizará automáticamente el cambio de cara y guardará la imagen final en la carpeta de salida (ComfyUI/output/).


ScreenShoot: Ejemplos de cambio de cara
Ejemplos de cambio de cara

💡 Consejos y buenas prácticas

  • Usa imágenes claras y bien iluminadas. Cuanto mejor se vea el rostro, más preciso será el face swap.

  • Elige un rostro origen frontal o con un ángulo similar al de la imagen base. ReActor funciona especialmente bien cuando las poses son compatibles.

  • Prueba distintos modelos faciales. Modelos como Ekanteeka producen resultados naturales, pero otros pueden dar mayor detalle o expresividad.

  • Ajusta face boost y blend si el resultado no encaja bien. Un blend más bajo conserva más textura de la imagen original.

  • Si la detección de rostro falla, cambia el detector.YOLOv5l es el más equilibrado, pero SCRFD funciona muy bien con ángulos complicados o rostros pequeños.

  • Combina este flujo con otros workflows de ComfyUI.Por ejemplo:

    • Añadir nuevos fondos

    • Aplicar upscale

    • Refinar la imagen con GFPGAN o ESRGAN

    • Integrarlo dentro de un pipeline de diseño o generación IA


🧩 Mejorando el workflow: procesamiento por lotes

Una de las mayores ventajas de ComfyUI es que puedes encadenar y combinar workflows para crear procesos más complejos y automatizados.El workflow básico de cambio de cara funciona con dos imágenes, pero puede ampliarse fácilmente para:

  • procesar todas las imágenes de una carpeta,

  • generar resultados en lote y sin supervisión,

  • y combinar varias imágenes en una sola para comparar imagen base + rostro + resultado.


screenshoot: Workflow de cambio de cara de imágenes de un directorio
Workflow de cambio de cara de imágenes de un directorio

Para ilustrarlo, hemos preparado un segundo flujo: 📁 WF_ComfyUI_CambioDeCara_PorLotes.json



🔄 ¿Qué añade este workflow respecto al anterior?

1️⃣ LoadImageListFromDir //Inspire

Qué hace: Permite seleccionar una carpeta completa y cargar automáticamente todas las imágenes que contiene, enviándolas al flujo una por una.

Qué tocar: indica la ruta de la carpeta donde están las imágenes a las que les quieres cambiar la cara.


2️⃣ ImageConcatMulti

  • Qué hace: Concatena varias imágenes en una sola. En este flujo se concatenan exactamente tres imágenes:

    • image_1: rostro origen (LoadImage)

    • image_2: imagen base (desde Reroute)

    • image_3: imagen resultado del swap (ReActorFaceSwap)

  • Que tocar: 

    • inputcount: número de imágenes de entrada. 3 en nuestro caso

    • direction: como coloca las imágenes que recibe de entrada ("right" → formato horizontal (las tres imágenes una al lado de la otra)

    • match_image_size: true → mantener la misma altura para todas


Screenshoot: nodo comfyui - Nodo ImageConcatMulti
Nodo ImageConcatMulti

🌐 Recursos útiles

  • 🧩 ComfyUI: repositorio oficial de ComfyUI.

  • 🌍 Hugging Face: uno de los mayores repositorios de IA del mundo, donde encontrarás miles de modelos —incluidos los compatibles con Stable Diffusion y ComfyUI— listos para descargar y usar.

  • 🎨CivitAI: plataforma comunitaria donde los usuarios comparten modelos, estilos, LoRAs y nodos específicos para ComfyUI, clasificados por categoría, versión y nivel de complejidad.



  • Workflows de este artículo:

    • 👉 WF_ComfyUI_CambioDeCara.json


    • 👉 WF_ComfyUI_CambioDeCara_PorLotes.json


🗺️ Conclusión

Con esta cuarta entrega de la serie ComfyUI, ya conoces cómo construir un workflow completo para cambiar el rostro de una imagen de forma totalmente local, controlando cada paso del proceso usando ReActor.Este tipo de flujos abre un abanico enorme de posibilidades creativas y técnicas:

  • modificaciones para cine, diseño o publicidad

  • generación de datasets sintéticos

  • pruebas de modelos de IA

  • ilustración y arte digital

  • automatizaciones masivas aplicando un mismo rostro a múltiples imágenes

Además, gracias a su estructura modular, puedes combinar este workflow con otros (como la concatenación visual o el procesado por lotes) para generar comparativas automáticas, control de calidad, o auditorías visuales, tal como hemos visto.


Descarga y prueba los Workflows en tu ComfyUI, experimenta con distintos modelos faciales, cambia los detectores y ajusta los parámetros. Cada configuración aporta matices diferentes, y explorar esas variaciones forma parte del aprendizaje y de la diversión.


💙 Si te ha gustado esta entrega, no olvides visitar www.lozkorp.com para más artículos sobre IA en local, workflows, diseño, creatividad y automatización.


Comentarios


© 2025 by Lozkorp                                                         

bottom of page