Arregla cualquier parte de una imagen con inpainting de Flux en ComfyUI, una región cada vez

Pinta una máscara suave, deja que Flux Dev vuelva a renderizar solo esa zona a mayor resolución con el detailer SEGS y luego guarda, vuelve a subir y pasa a la siguiente parte. Los ajustes que funcionan y por qué las máscaras pequeñas superan a las grandes.

Anton Tenitsky13 de octubre de 20266 min de lecturaVersión en vídeo más abajo

Esta guía se tradujo del inglés con IA y puede contener errores. Leer el original.

Un comparador de imágenes en ComfyUI dividiendo un personaje con un bate de béisbol en una calle de la ciudad, antes y después del inpainting de Flux en el rostro y los brazos

La mayoría de las imágenes de IA están casi bien. El rostro no cuadra, una manga se ha derretido, una mano es incorrecta. El inpainting vuelve a renderizar solo la parte que enmascaras y deja el resto como está. Este flujo lo hace con Flux Dev y el detailer SEGS del Impact Pack, que amplía la zona enmascarada antes de volver a renderizarla, de modo que incluso una región pequeña vuelve con detalle real.

La técnica funciona con cualquier sujeto. Aquí tomo una imagen de un personaje que generé a partir de un boceto (mira de boceto a arte con Flux) y la arreglo parte por parte: rostro, mangas, piernas, torso y el bate de béisbol.

En resumen

  • Enmascara una región en el Mask Editor, con un pincel suave (dureza cercana a cero).
  • MASK to SEGS → Detailer (SEGS): la zona enmascarada se amplía a 512 px, se vuelve a renderizar con Flux Dev y se mezcla de nuevo.
  • Ajustes: Flux guidance 3,5, 20 steps, denoise 0,60–0,70.
  • Una parte cada vez. Guarda, descarga, vuelve a subir y enmascara la siguiente parte.
  • Cuenta con repetir: de 10 a 15 ejecuciones para un rostro es normal.

Para una explicación más detallada de cada nodo, y un truco de retoque para las manos más difíciles, mira arreglar manos de IA en ComfyUI. Esta guía trata de usar la misma configuración en una imagen entera.

El flujo

El flujo de inpainting en ComfyUI: Load Image, MASK to SEGS, Load Diffusion Model, Load VAE, DualCLIPLoader, un prompt positivo y FluxGuidance alimentando un nodo Detailer (SEGS)
Load Image y su máscara pasan por MASK to SEGS hasta el detailer, con Flux Dev, su VAE y dos codificadores de texto.
  • Load Image: sube la imagen que quieres arreglar. Haz clic derecho sobre ella y elige Open in Mask Editor para pintar la máscara.
  • MASK to SEGS (Impact Pack) convierte la máscara en un segmento, aislando esa zona para poder ampliarla.
  • Detailer (SEGS) es el nodo principal donde todo se junta. Toma la zona enmascarada, que puede medir solo 100 × 100 píxeles, la amplía a 512 × 512 y la vuelve a renderizar ahí. Más píxeles le permiten crear un mejor resultado. La imagen original lo guía, así que no necesitas mucho prompt; ya lee lo que hay. Conecta también la imagen original, no solo los segmentos.
  • Load Diffusion Model: el modelo Flux Dev completo. La primera generación tarda un minuto y medio mientras se carga; después, una ejecución tardó unos 16 segundos.
  • Load VAE: el pequeño autocodificador de Flux, que decodifica la imagen desde el espacio latente.
  • DualCLIPLoader: Flux necesita dos codificadores de texto, clip_l y t5xxl.
  • Prompt positivo → FluxGuidance: Flux guidance fija con cuánta fuerza controla el prompt la imagen. 3,5 es el estándar y funciona bien. Conecta también la entrada negativa, pero déjala vacía: Flux no funciona bien con prompts negativos, así que describe todo en el positivo.
  • Image Comparer y Save Image al final.

Pinta una máscara suave

En el Mask Editor, fija el tamaño del pincel con el deslizador y luego baja la dureza a casi cero. Por defecto es muy dura, y un borde duro deja bordes y costuras visibles. Pinta sobre la zona y haz clic en Save.

El Mask Editor de ComfyUI con una máscara negra pintada sobre el torso del personaje y los ajustes del pincel a la derecha
Una máscara solo sobre el torso. Mantén cada máscara en una sola parte de la imagen.

Enmascara una parte cada vez: brazos, piernas, cintura, torso, rostro, pelo, el bate. Si intentas hacer los brazos y las piernas de una vez, la máscara crece demasiado y estropea la imagen. Simplemente no hace un buen trabajo.

Prompt y ajustes

El prompt puede ser muy sencillo. Para el rostro escribí «young beautiful female face, red lips». Añade más detalle solo si se sigue equivocando.

En el detailer:

  • Seed: aleatoria en cada ejecución. Conserva una seed si quieres recrear una imagen: con el mismo prompt y los mismos ajustes, otra persona obtiene exactamente el mismo resultado.
  • Steps: 20. El rango habitual es 20–50, con rendimientos decrecientes por encima de 50. Flux es bastante lento, y 20 es rápido y de alta calidad.
  • CFG: 1,0. La guía ya viene del nodo FluxGuidance, así que aquí el CFG no tiene efecto; déjalo.
  • Denoise: 0,60–0,70. Cuánto puede cambiar la zona. Este rango da al modelo libertad sin cambiarla demasiado ni demasiado poco. Llegué a él por experimentación, después de cientos o miles de generaciones.
Ajustes del detailer: steps 20, cfg 1,0, sampler euler, scheduler normal, denoise 0,70, feather 5, noise_mask y force_inpaint activados
Los ajustes del detailer: 20 steps, CFG 1,0, denoise 0,70.

Ejecuta, guarda, vuelve a subir, repite

Cada ejecución da un rostro distinto, así que sigue ejecutando hasta que uno funcione. Los resultados van a la carpeta output de ComfyUI; el prefijo del nombre de archivo del nodo de guardado (yo usé flux_gen) los hace fáciles de encontrar.

Para trabajar en la siguiente parte, el resultado actual tiene que convertirse en la entrada. Descargo la imagen y la vuelvo a subir en Load Image. (Si conoces una forma mejor de reutilizarla dentro de RunComfy, dímela.) Al subir una imagen nueva se borra la máscara, así que abre el Mask Editor y pinta la siguiente zona.

El comparador sobre un brazo con inpainting, con un lado izquierdo mejor, un lado derecho irregular y tatuajes no deseados en la pierna
Una pasada de mangas: buena en un lado, mala en el otro, y tatuajes que nadie pidió.

En las mangas, el primer intento fue bueno en un lado y malo en el otro. La máscara era un poco grande; una máscara más estrecha a lo largo del brazo funcionó mejor, aunque aun así añadió tatuajes que no había pedido. Un prompt más concreto («white cotton sleeves») probablemente ayudaría. A veces hay que volver a pintar la máscara porque cogió partes que no querías.

Cómo se fue formando la imagen completa

  • Piernas: «smooth legs, high heels, red boots». La primera generación se vio estupenda.
  • Torso y mangas juntos: una máscara grande, y problemas. La cintura se fundió con el brazo, así que lo dividí en máscaras separadas.
  • Solo los brazos: bastante bien a la primera. No era el blanco plateado que quería, pero suficientemente bueno.
  • Rostro: de 10 a 15 generaciones.
  • Torso y cintura: unas 10 iteraciones más.
  • Bate de béisbol: una máscara realmente pequeña y unas pocas iteraciones.
La imagen final en el comparador: el personaje con un bate de béisbol sobre el hombro, con un rostro y unos brazos más nítidos
La imagen final tras todas las pasadas, comparada con la original.

Es bastante trabajo: descargar, volver a subir, volver a ejecutar. Rehacer buena parte de una imagen puede llevar una hora. Si es solo el rostro y las manos, es mucho más rápido.

Dónde ejecutarlo

Flux Dev necesita una GPU potente. Grabé esto en RunComfy, donde el flujo está preparado y listo, con unos 15 minutos gratis para probarlo. Hoy ejecuto este tipo de trabajo en RunPod; mira mi introducción a RunPod. El flujo también está en mi Patreon.

El enlace de RunComfy es un enlace de referido. Si pruebas RunPod, mi enlace de referido da a las cuentas nuevas que se registran con Google entre 5 y 500 $ de crédito después de su primer gasto de 10 $, y yo recibo una pequeña comisión.

Ver la versión en vídeo (10:15)

Todo lo anterior también está en el vídeo, si prefieres seguirlo en pantalla. El vídeo está en inglés.

Preguntas frecuentes

¿Qué denoise debo usar para el inpainting con Flux?

Entre 0,60 y 0,70. Eso da al modelo libertad suficiente para interpretar la zona sin cambiarla demasiado ni demasiado poco; llegué a ello después de cientos de generaciones.

¿Por qué mi inpainting sale mal cuando enmascaro una zona grande?

Una máscara grande que cubre varias partes (brazos, torso y piernas a la vez) da al modelo demasiado que cambiar y estropea la imagen. Trabaja una parte cada vez con una máscara pequeña y suave.

¿Debo escribir un prompt negativo para Flux?

No. Flux no usa bien los prompts negativos. Describe lo que quieres en el prompt positivo y mantenlo sencillo; añade detalle solo si se sigue equivocando.

Anton Tenitsky es artista 3D con más de 15 años en gráficos por ordenador, que ha trabajado con Nickelodeon, Gameloft, Marvel Rivals y muchos otros clientes. Más sobre mí

Guías relacionadas