Cambias la chaqueta de tu personaje generado y la cara se transforma. Ajustas el fondo y la pose cambia. Ocurre porque el modelo no sabe qué partes conservar. FLUX.1 Kontext, publicado por Black Forest Labs, resuelve exactamente eso: usa la imagen original como referencia visual explícita y permite pedir modificaciones concretas manteniendo estructura, identidad y estilo. No es img2img con más pasos — es un mecanismo distinto.
Este artículo construye el workflow desde cero, explica cada parámetro relevante y da prompts probados para los casos de uso más comunes.
🏗️ Workflow: FLUX Kontext Character Edit
Qué hace FLUX Kontext diferente
El img2img clásico codifica la imagen de entrada en el espacio latente y el KSampler la usa como punto de partida. El problema es estructural: ese latente lleva información composicional, pero el modelo no recibe instrucciones explícitas de qué preservar y qué cambiar. El prompt guía la dirección general. La identidad del sujeto, en cambio, depende de cuánto ruido se añade y de la suerte.
FLUX Kontext añade un paso previo. Codifica la imagen en un espacio de condicionamiento visual separado del latente de sampling. El modelo recibe la imagen como contexto, no como punto de partida. Con eso, razona sobre qué mantener mientras genera el cambio pedido — de forma similar a cómo funciona la edición instructiva en modelos de lenguaje.
El resultado práctico es concreto. Pides “cambia la chaqueta roja a cuero negro” y el modelo entiende que debe tocar solo la chaqueta. La cara no cambia. La pose no cambia. El fondo no cambia. Cuando funciona bien, es casi desconcertante.
Requisitos
- ComfyUI actualizado (versión 0.3 o superior recomendada).
- ComfyUI Manager para instalar nodos faltantes.
- Modelo FLUX.1 Kontext Dev o variante compatible.
- Encoder de texto compatible con FLUX (T5XXL + CLIP-L).
- VAE compatible con FLUX (ae.safetensors).
- 12GB de VRAM mínimo recomendado con versiones optimizadas.
Construir el workflow
Grupo 1 — Entrada de imagen
Load Image — Carga la imagen a editar. Usa PNG de alta calidad. El JPEG con compresión agresiva introduce artefactos que el modelo no ignora — los amplifica. La imagen debe estar a una resolución que tu GPU pueda manejar: 1024px en el lado largo es un buen punto de partida.
Image Resize (ImageScale) — Escala la imagen antes de procesarla.
| Parámetro | Valor |
|---|---|
| mode | keep aspect ratio |
| long_side | 1024 |
Reducir a 1024px baja el consumo de VRAM y evita que el modelo invente detalles por exceso de resolución. Si subes imágenes de 4K sin escalar, el proceso falla o produce resultados inconsistentes.
Preview Image — Conectado a la imagen escalada. Confirma que la entrada es correcta antes de lanzar. Ahorra tiempo cuando hay un error de ruta o de formato — y los hay más de lo que parece.
Grupo 2 — Modelos
UNETLoader (o loader FLUX equivalente)
| Parámetro | Valor |
|---|---|
| model | flux1-kontext-dev.safetensors |
| weight_dtype | fp8 o default |
DualCLIPLoader
| Parámetro | Valor |
|---|---|
| clip_name1 | t5xxl_fp8_e4m3fn.safetensors |
| clip_name2 | clip_l.safetensors |
| type | flux |
VAELoader
| Parámetro | Valor |
|---|---|
| vae_name | ae.safetensors |
Grupo 3 — Condicionamiento Kontext
Kontext Image Encode — El nodo central de todo el workflow. Toma la imagen escalada y la codifica en un condicionamiento visual que el modelo usa como referencia de identidad. Sin este nodo, el workflow es img2img estándar. Con él, es otra cosa.
Entrada: imagen escalada desde Image Resize. Salida: condicionamiento visual que va al KSampler como parte del condicionamiento positivo.
CLIPTextEncode positivo
El prompt para FLUX Kontext necesita ser explícito en dos cosas: qué conservar y qué cambiar. Si solo describes el cambio, el modelo asume libertad sobre el resto.
keep the same woman, same face identity, same pose, same camera angle,
change her jacket to a matte black leather jacket,
replace the background with a clean modern photography studio,
softbox lighting, realistic skin texture, high detail
CLIPTextEncode negativo
different person, changed face, deformed eyes, extra fingers,
distorted hands, blurry, low quality, bad anatomy, text, watermark
Flux Guidance — Nodo específico de FLUX que controla la intensidad de adherencia al prompt.
| Parámetro | Valor recomendado |
|---|---|
| guidance | 3.0 – 4.0 |
Empieza en 3.5. Valores más altos siguen mejor el prompt pero rigidizan el resultado — por encima de 5.0 el modelo tiende a sobreinterpretar instrucciones simples y añade cambios que no pediste.
Grupo 4 — Sampling
Empty Latent Image
| Parámetro | Valor |
|---|---|
| width | 1024 |
| height | según ratio de la imagen de entrada |
| batch_size | 1 |
KSampler
| Parámetro | Valor |
|---|---|
| seed | fijo mientras afinas el prompt |
| steps | 24-32 |
| cfg | 1.0 (la guía va por Flux Guidance) |
| sampler_name | euler |
| scheduler | simple |
| denoise | 0.55 – 0.70 |
El denoise es el parámetro más crítico de todo el workflow:
| Denoise | Efecto |
|---|---|
| 0.40 – 0.55 | Cambios sutiles. Preserva casi todo. |
| 0.55 – 0.70 | Cambia ropa o fondo con buena identidad del sujeto. |
| 0.70 – 0.85 | Transformación notable. Puede afectar detalles faciales. |
| 0.85+ | Cambio radical. La imagen de referencia pierde peso. |
Para cambios de ropa o fondo empieza en 0.60. Para cambios de estilo sube hasta 0.75. Mueve este valor de 0.05 en 0.05 — los saltos grandes hacen difícil saber qué causó el problema.
Grupo 5 — Salida
VAEDecode → Save Image (prefix: comfylab_kontext)
Image Comparer (opcional, disponible en packs como WAS Node Suite o ComfyUI Custom Nodes) — Útil para ver antes/después sin salir de ComfyUI. Si generas muchas variaciones seguidas, te ahorra abrir carpetas constantemente. No es imprescindible, pero una vez que lo usas no vuelves atrás.
Diagrama de conexiones
Load Image → Image Resize → Kontext Image Encode → KSampler (positive)
UNETLoader → KSampler (model)
DualCLIPLoader → CLIPTextEncode (+/-) → Flux Guidance → KSampler (positive/negative)
Empty Latent Image → KSampler (latent_image)
KSampler → VAEDecode → Save Image
Prompts probados
Cambio de ropa:
same person, same face, same pose, same background,
replace the red dress with a minimalist white linen suit,
editorial fashion photo, natural window light, realistic fabric texture
Cambio de fondo:
same person and same pose,
replace the background with a rainy Tokyo street at night,
neon reflections on wet pavement, cinematic shallow depth of field,
keep the subject perfectly sharp
Cambio de estilo artístico:
preserve the exact character identity and composition,
convert the image into a high-end anime key visual,
clean line art, soft gradients, detailed eyes, cel shading
Cambio de iluminación:
same scene and same composition,
change the lighting to dramatic golden hour sunset,
long shadows, warm orange tones, keep all details intact
Variante: edición por zona con máscara
Cuando quieres tocar solo una zona específica, combina Kontext con inpainting:
- Carga la imagen y crea la máscara con el nodo Load Image (as Mask) o con el editor de máscara integrado en ComfyUI.
- Usa un nodo de inpainting compatible con FLUX en lugar del KSampler estándar.
- Baja el denoise a 0.45-0.60 para ediciones locales.
- En el prompt, menciona solo la zona:
change only the jacket, preserve everything else exactly.
Este flujo combina la referencia de identidad de Kontext con la precisión de máscara del inpainting. La máscara hace el trabajo grueso; Kontext evita que el resto de la imagen derive.
Solución de problemas
La cara cambia aunque pido “same face”
El denoise está demasiado alto. Bájalo 0.10-0.15. Repite la instrucción de identidad explícitamente en el prompt: same face identity, same person, identical facial features. Usa seed fijo para aislar el efecto del denoise — si no fijas la seed, no sabes si el cambio vino del denoise o de la aleatoriedad.
No cambia nada o los cambios son mínimos
El denoise es demasiado bajo. Sube a 0.65-0.70. Verifica también que el prompt describa el cambio de forma directa y específica, sin ambigüedades. “Algo diferente en la ropa” no es una instrucción — “replace the red jacket with a black leather jacket” sí lo es.
Las manos se deforman
Genera a resolución más baja (768px) para la primera pasada. Si el problema persiste, arregla manos con inpainting después — la guía de reparación de manos con inpainting explica el proceso paso a paso.
Error de VRAM durante la codificación
Activa offload en el UNETLoader si tu wrapper lo permite. Baja la resolución de entrada a 768px. Si usas versión cuantizada (Q4/Q5 GGUF), el nodo de carga estándar no la reconoce — necesitas el loader GGUF específico o el proceso falla en silencio, sin mensaje de error útil. El artículo de instalación de Flux con poca VRAM detalla los loaders necesarios.
El Kontext Image Encode no aparece en ComfyUI
El nodo requiere una extensión específica. Abre ComfyUI Manager → Install Missing Custom Nodes y busca el wrapper de FLUX Kontext compatible con tu versión de ComfyUI. Los nombres varían entre extensiones — busca “Kontext” o “FLUX Image Edit”. Si instalas el wrapper equivocado, el nodo aparece pero falla al ejecutar.
FLUX Kontext es la herramienta más útil para iterar sobre personajes generados sin perder coherencia entre variaciones. El flujo que has montado aquí — imagen de referencia → codificación Kontext → KSampler con denoise controlado — es la base sobre la que se construyen pipelines de producción más complejos. El siguiente paso natural es combinar esto con ControlNet de pose para tener control simultáneo sobre identidad y postura. Si quieres explorar el video desde los keyframes que generes con este workflow, el artículo de Wan 2.1 I2V es el complemento directo.
Siguientes pasos en ComfyUI
Primeros pasos
Preguntas frecuentes
- ¿FLUX Kontext es mejor que inpainting para editar una zona?
- Depende. Kontext es mejor para cambios semánticos amplios (cambiar toda la ropa, transformar el fondo, cambiar el estilo) porque usa la imagen completa como referencia. Inpainting sigue siendo más preciso cuando quieres tocar una zona exacta delimitada con máscara. Lo ideal es combinarlos: Kontext para el cambio general, inpainting para los retoques finos.
- ¿Puedo usar FLUX Kontext con 8GB de VRAM?
- Es posible con versión cuantizada (Q4 o Q5 GGUF), offload activado y resoluciones de 768px o menos. Para un flujo estable sin recortes de memoria se recomiendan 12GB. Con 16GB o más trabajas sin restricciones.
- ¿Por qué cambia la cara aunque pida 'same face'?
- El denoise es demasiado alto. Con valores por encima de 0.75 el modelo tiene demasiada libertad para reinterpretar. Baja a 0.60-0.65, repite la instrucción de identidad varias veces en el prompt y usa seed fijo para comparar resultados.
- ¿Funciona para cambiar el estilo artístico completo?
- Sí, pero necesitas denoise alto (0.75-0.85) y un prompt muy específico del estilo objetivo. A ese nivel puede perder detalles faciales, así que evalúa caso a caso. Para transformaciones de estilo totales, txt2img con ControlNet de pose puede ser más predecible.