ComfyLab
Face Swap en ComfyUI: Workflow Completo con IPAdapter FaceID

Face Swap en ComfyUI: Workflow Completo con IPAdapter FaceID

8GB VRAM VRAM Intermedio 9 min SDXL / FLUX
Savien

Face Swap en ComfyUI: Workflow Completo con IPAdapter FaceID

Cambiar caras en ComfyUI es una de las funciones más demandadas en la generación de imágenes con IA, y la llegada de IPAdapter FaceID ha revolucionado la calidad de estos resultados. Si has intentado hacer face swap en ComfyUI y los resultados no te convencen, o directamente no sabes por dónde empezar, este artículo te guiará paso a paso para configurar un workflow profesional que funcione con IPAdapter FaceID ComfyUI.

A diferencia de métodos antiguos que intentaban “pegar” caras, este sistema entiende la identidad facial a nivel de características, permitiendo que la cara generada mantenga la identidad mientras se adapta al contexto, pose y estilo de la imagen objetivo.

Resultado del workflow: antes y después

Retrato original sin modificar Retrato original sin modificar

Resultado tras aplicar IPAdapter FaceID Resultado tras aplicar IPAdapter FaceID


De un vistazo: Requisitos y configuración

AspectoRequisito mínimoRecomendado
VRAM8GB (SDXL)10-12GB
Python3.10+3.11
GPUNVIDIA (AMD parcial)RTX 3080 o superior
Modelo baseSDXL o FLUXSDXL (mejor balance)
Tiempo por imagen30-60 segundos20-30 segundos

Qué es IPAdapter FaceID y por qué funciona mejor

IPAdapter FaceID es un adapter de imagen que permite inyectar características faciales de una persona en el proceso de generación de imágenes. El secreto está en cómo funciona: en lugar de trabajar con píxeles, extrae embeddings faciales (representaciones matemáticas de rasgos faciales) que se integran en el modelo de difusión.

Esto significa que obtienes cambios de cara naturales que respetan la anatomía y la iluminación de la imagen, manteniendo coherencia con el contexto visual. A diferencia de herramientas como Roop, que reemplazan píxeles directamente, IPAdapter entiende la identidad a nivel semántico.

💡 Consejo: IPAdapter FaceID genera caras más naturales porque integra la identidad en el proceso de generación, no como una superposición posterior.


Requisitos técnicos antes de empezar

VRAM necesaria según configuración

  • ComfyUI + IPAdapter + SDXL: 8GB mínimo (10GB recomendado)
  • ComfyUI + IPAdapter + FLUX: 12GB mínimo
  • Si usas InsightFace: suma 1-2GB adicionales

Software obligatorio

  • ComfyUI instalado y funcionando correctamente
  • Python 3.10 o superior
  • Una tarjeta gráfica compatible (NVIDIA recomendado, AMD parcialmente soportado)

Si tienes menos de 8GB, puedes usar optimizaciones como attention slicing o quantización, aunque el rendimiento será más lento.

📌 A tener en cuenta: 8GB VRAM es el mínimo viable; con 10GB+ tendrás mejor experiencia sin optimizaciones agresivas.


Nodos necesarios para cambiar cara en ComfyUI

Para construir un workflow funcional de face swap, necesitas instalar y tener disponibles estos nodos:

NodoFunciónObligatorioAlternativa
Load ImageCargar imagen de referencia facial✅ Sí
IPAdapter AdvancedAplicar el adapter de identidad✅ SíIPAdapter Unified
KSamplerEjecutar el proceso de difusión✅ SíKSampler Advanced
VAE DecodeConvertir latentes a imagen✅ Sí
Save ImageGuardar resultado final✅ Sí
InsightFaceExtraer embeddings faciales precisos❌ NoUsar modelos sin FaceID

La mayoría de estos nodos vienen por defecto en ComfyUI. El crítico es IPAdapter Plus, que es un custom node que debes instalar manualmente.

Instalación de IPAdapter Plus

Accede a tu carpeta ComfyUI/custom_nodes y ejecuta:

git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus.git

Luego reinicia ComfyUI. Si ves errores sobre InsightFace, instálalo con:

pip install insightface onnxruntime

Estructura del workflow paso a paso

Paso 1: Cargar la imagen de referencia

Coloca un nodo Load Image en tu canvas. Aquí cargarás la foto de la cara que deseas transferir. Algunos consejos prácticos:

  • Usa fotos con buena iluminación frontal
  • Evita ángulos muy extremos (perfil completo)
  • Resuelve de al menos 256x256 píxeles
  • Si es posible, usa fotos recientes del mismo ángulo

La salida de este nodo se conecta directamente al puerto image del nodo IPAdapter Advanced.

Paso 2: Configurar IPAdapter Advanced

Este es el nodo clave del face swap en stable diffusion. Sus parámetros principales:

Modelo a usar:

  • Para SDXL: ip-adapter-faceid-plusv2_sdxl.bin (recomendado)
  • Para SDXL sin InsightFace: ip-adapter-plus-face_sdxl_vit-h.safetensors
  • Para FLUX: ip-adapter-faceid-flux.safetensors

Weight (peso de identidad): Este parámetro controla cuánto se parece la cara generada a la de referencia.

WeightEfectoCaso de uso
0.6Cambio sutil, cara más diferenteVariación natural
0.7-0.8Balance óptimoRecomendado para mayoría de casos
0.9-0.95Muy similar a la referenciaMáxima fidelidad
1.0+Copia casi exactaRiesgo de perder contexto

Comienza con 0.75 y ajusta según resultados.

⚠️ Importante: El weight es el parámetro más crítico. Valores bajos (0.5-0.6) dan variaciones naturales; valores altos (0.9+) pueden hacer que el resultado pierda contexto con el resto de la imagen.

Paso 3: Conectar el modelo base

Antes de IPAdapter, necesitas un modelo base (checkpoint). Usa:

  • SDXL: sd_xl_base_1.0.safetensors
  • FLUX: flux1-dev.safetensors (requiere 24GB VRAM) o flux1-schnell.safetensors (12GB)

El flujo es: Checkpoint → CLIP → Conditioning → KSampler → IPAdapter

Paso 4: Configurar KSampler

Los parámetros que afectan al face swap:

  • Steps: 20-30 (más pasos = más precisión pero más lento)
  • CFG Scale: 7.0-8.5 (controla cuánto sigue el prompt)
  • Sampler: dpmpp_2m_karras o euler (ambos dan buenos resultados)
  • Scheduler: karras o normal

Para face swap, no necesitas muchos pasos. 25 suele ser suficiente.

Paso 5: Decodificación y guardado

Conecta la salida del KSampler a un VAE Decode (usa el mismo VAE que tu modelo base) y finalmente a Save Image.

💡 Consejo: El workflow básico es lineal: imagen → IPAdapter → KSampler → VAE → guardado. Ajusta weight y steps según calidad deseada.


Errores frecuentes y soluciones

”InsightFace not installed”

Causa: El modelo FaceID requiere InsightFace para extraer embeddings faciales.

Solución:

pip install insightface onnxruntime

Si aún falla, descarga onnxruntime compatible con tu GPU:

pip install onnxruntime-gpu

La cara cambió pero no se parece a la referencia

Causa: Weight demasiado bajo.

Solución: Aumenta el weight de 0.75 a 0.85-0.90. Si aún no funciona, verifica que la imagen de referencia sea clara y frontal.

La cara no cambió en absoluto

Causa: Weight demasiado bajo o modelo incorrecto.

Solución:

  1. Sube el weight a 0.95
  2. Verifica que usas ip-adapter-faceid-plusv2_sdxl.bin (no otros modelos)
  3. Comprueba que InsightFace está instalado correctamente

Error de VRAM: “CUDA out of memory”

Causa: No tienes suficiente memoria.

Soluciones:

  • Reduce tamaño de imagen (512x512 en lugar de 768x768)
  • Activa attention slicing en ComfyUI
  • Reduce steps a 15-20
  • Usa SDXL en lugar de FLUX

La cara se ve distorsionada o deformada

Causa: Weight demasiado alto o imagen de referencia de baja calidad.

Solución: Baja weight a 0.65-0.70 y usa una foto de referencia más clara.


Comparativa: IPAdapter FaceID vs otros métodos

Si te preguntas por qué usar IPAdapter FaceID en lugar de otros enfoques para cambiar cara:

MétodoCalidadVelocidadVRAMFacilidad
IPAdapter FaceID⭐⭐⭐⭐⭐ Muy altaRápida8-12GBMedia
Roop (face swap)⭐⭐⭐⭐ AltaLenta4-6GBFácil
ControlNet Face⭐⭐⭐ MediaMedia8GBMedia
Fooocus Face⭐⭐⭐ MediaRápida6GBFácil

IPAdapter FaceID destaca por la calidad natural de los resultados y la integración fluida con el proceso de generación. En la práctica, cuando comparas resultados lado a lado, la diferencia es notable: las caras se integran mejor en la imagen y respetan la iluminación y perspectiva de forma más convincente.


Optimizaciones avanzadas

Usar múltiples caras en una imagen

Puedes conectar varios nodos IPAdapter en cadena, cada uno con una cara diferente y weights más bajos (0.4-0.6 cada uno) para evitar conflictos.

Combinar con ControlNet

Añade un nodo ControlNet (pose, canny o depth) antes del IPAdapter para mayor control sobre la composición final.

Ajuste fino de prompts

Aunque IPAdapter controla la identidad, el prompt sigue siendo importante. Usa descripciones detalladas:

  • ❌ Malo: “una persona”
  • ✅ Mejor: “retrato profesional, iluminación studio, fondo neutro, 8k”

Preguntas frecuentes

P: ¿Necesito InsightFace obligatoriamente para hacer face swap en ComfyUI?

R: No. Puedes usar ip-adapter-plus-face sin InsightFace y obtener buenos resultados. InsightFace mejora la precisión facial pero requiere instalar onnxruntime manualmente. Si tienes errores de instalación, empieza sin InsightFace.


P: ¿Por qué la cara resultante no se parece a la referencia?

R: El weight del IPAdapter probablemente está demasiado bajo. Súbelo a 0.85-0.95 para mayor fidelidad. Si el problema persiste, verifica que estás usando el modelo FaceID correcto (ip-adapter-faceid-plusv2_sdxl.bin para SDXL).


P: ¿Funciona face swap en ComfyUI con cualquier checkpoint?

R: Funciona con SDXL y FLUX principalmente. Los checkpoints SD 1.5 son compatibles con los modelos IPAdapter estándar, pero la calidad es inferior. Para mejores resultados usa Juggernaut XL o RealVisXL con el modelo FaceID de SDXL.


P: ¿Puedo hacer face swap en vídeo con ComfyUI?

R: Sí, pero es un workflow diferente y más complejo. Necesitas procesar frame a frame con VideoHelperSuite y combinar el resultado. El tiempo de procesado se multiplica por el número de frames.


Sigue leyendo

Si quieres profundizar en técnicas avanzadas de generación con IA, consulta nuestras guías sobre ControlNet en ComfyUI para mayor control compositivo. Si buscas optimizar el rendimiento de tu GPU, te recomendamos explorar técnicas de quantización y memory optimization en ComfyUI. Para aplicaciones profesionales, también disponemos de recursos sobre cómo comercializar contenido generado con IA respetando derechos de imagen.


🏆 Nuestra recomendación

Si buscas resultados naturales y de alta calidad → usa IPAdapter FaceID con SDXL y weight 0.75-0.85. Es el mejor balance entre fidelidad y velocidad para la mayoría de usuarios. Si priorizas facilidad de uso y tienes menos VRAM → considera Roop o Fooocus, aunque la calidad será inferior. Si necesitas máxima fidelidad y tienes 24GB+ VRAM → experimenta con FLUX, que ofrece resultados ligeramente superiores a costa de mayor consumo.

Preguntas frecuentes

¿Necesito InsightFace obligatoriamente para hacer face swap en ComfyUI?
No. Puedes usar ip-adapter-plus-face sin InsightFace y obtener buenos resultados. InsightFace mejora la precisión facial pero requiere instalar onnxruntime manualmente. Si tienes errores de instalación, empieza sin InsightFace.
¿Por qué la cara resultante no se parece a la referencia?
El weight del IPAdapter probablemente está demasiado bajo. Súbelo a 0.85-0.95 para mayor fidelidad. Si el problema persiste, verifica que estás usando el modelo FaceID correcto (ip-adapter-faceid-plusv2_sdxl.bin para SDXL).
¿Funciona face swap en ComfyUI con cualquier checkpoint?
Funciona con SDXL y FLUX principalmente. Los checkpoints SD 1.5 son compatibles con los modelos IPAdapter estándar, pero la calidad es inferior. Para mejores resultados usa Juggernaut XL o RealVisXL con el modelo FaceID de SDXL.
¿Puedo hacer face swap en vídeo con ComfyUI?
Sí, pero es un workflow diferente y más complejo. Necesitas procesar frame a frame con VideoHelperSuite y combinar el resultado. El tiempo de procesado se multiplica por el número de frames.
Compartir X LinkedIn

También te puede interesar