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
Resultado tras aplicar IPAdapter FaceID
De un vistazo: Requisitos y configuración
| Aspecto | Requisito mínimo | Recomendado |
|---|---|---|
| VRAM | 8GB (SDXL) | 10-12GB |
| Python | 3.10+ | 3.11 |
| GPU | NVIDIA (AMD parcial) | RTX 3080 o superior |
| Modelo base | SDXL o FLUX | SDXL (mejor balance) |
| Tiempo por imagen | 30-60 segundos | 20-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:
| Nodo | Función | Obligatorio | Alternativa |
|---|---|---|---|
| Load Image | Cargar imagen de referencia facial | ✅ Sí | — |
| IPAdapter Advanced | Aplicar el adapter de identidad | ✅ Sí | IPAdapter Unified |
| KSampler | Ejecutar el proceso de difusión | ✅ Sí | KSampler Advanced |
| VAE Decode | Convertir latentes a imagen | ✅ Sí | — |
| Save Image | Guardar resultado final | ✅ Sí | — |
| InsightFace | Extraer embeddings faciales precisos | ❌ No | Usar 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.
| Weight | Efecto | Caso de uso |
|---|---|---|
| 0.6 | Cambio sutil, cara más diferente | Variación natural |
| 0.7-0.8 | Balance óptimo | Recomendado para mayoría de casos |
| 0.9-0.95 | Muy similar a la referencia | Máxima fidelidad |
| 1.0+ | Copia casi exacta | Riesgo 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) oflux1-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_karrasoeuler(ambos dan buenos resultados) - Scheduler:
karrasonormal
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:
- Sube el weight a 0.95
- Verifica que usas
ip-adapter-faceid-plusv2_sdxl.bin(no otros modelos) - 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étodo | Calidad | Velocidad | VRAM | Facilidad |
|---|---|---|---|---|
| IPAdapter FaceID | ⭐⭐⭐⭐⭐ Muy alta | Rápida | 8-12GB | Media |
| Roop (face swap) | ⭐⭐⭐⭐ Alta | Lenta | 4-6GB | Fácil |
| ControlNet Face | ⭐⭐⭐ Media | Media | 8GB | Media |
| Fooocus Face | ⭐⭐⭐ Media | Rápida | 6GB | Fá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.
Siguientes pasos en ComfyUI
Primeros pasos
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.