Repintado (Inpainting)
¡Aprende a hacer inpainting y modificar imágenes en ComfyUI! Esta guía te enseña cómo cambiar el cabello, la ropa, rasgos faciales y más, utilizando “segment anything” para ediciones precisas.

Cambia el color del cabello, el peinado, el pecho, los abdominales, la ropa, etc.
Antes de comenzar a construir los nodos, es útil establecer un flujo de trabajo.
Por ejemplo, si deseas cambiar el color del cabello, necesitarás estos dos pasos:
Paso 1: Primero, se debe identificar el cabello. Puedes elegir pintura manual o reconocimiento automático. Paso 2: Repintado parcial, modifica el área reconocida.

Ahora, comencemos a construir los nodos basándonos en estos pasos.
Método 1: segment anything
Paso 1: Identificar el cabello
I. Después de subir la imagen, añade un nodo de 'segment anything'. Arrastra el nodo y carga dos modelos correspondientes. Conecta la imagen al nodo e introduce el área deseada para el reconocimiento.

Añadir nodos:
GroundingDinoSAMSegment (segment anything): SAMLoader (Impact)
GroundingDinoModelLoader (segment anything) Parámetros: device_model: Preferentemente GPU
II. Para mejorar la precisión del reconocimiento de la máscara, añade otro nodo de 'segment anything' para identificar el rostro. Puedes usar el mismo modelo anterior como entrada. Finalmente, resta las dos máscaras usando 'mask-mask': máscara1 - máscara2 para obtener con precisión las partes del cabello.

Añadir nodos:
Bitwise(MASK - MASK)
*Cuando se encuentren áreas que no pueden ser reconocidas, puedes usar este método de resta de máscaras.
III. Una vez obtenida la máscara, puedes procesarla. Por ejemplo, aquí añadimos 'GrowMask' y 'FeatheredMask' para expandir la máscara y suavizar los bordes, haciendo que el resultado final del inpainting sea más natural.

Añadir nodos:
GrowMask
FeatheredMask
IV. Finalmente, puedes añadir un nodo de previsualización de máscara para ver el efecto final.

Añadir nodos:
Convert Mask to Image
Preview Image
V. Para una visualización más clara, podemos organizar este grupo de nodos.

Step 2: Repintado Parcial
I. Para el repintado, utilizaremos el nodo mencionado anteriormente 'Set Latent Noise Mask', que tomará la imagen original como referencia para el inpainting. Conecta los nodos de máscara entre sí.

Añadir nodos:
Set Latent Noise Mask
II. A continuación, añade el grupo de modelos. Siguiendo Img2Img, añade los prompts del modelo, el sampler y finalmente VAE Decode. Luego, conecta el grupo de máscaras al grupo del modelo.
*Las imágenes necesitan codificarse para ingresar al espacio latente para el repintado.

III. Todas las líneas están conectadas. Puedes introducir los prompts correspondientes según tus necesidades, establecer los parámetros relevantes, y la Denoising Strength máxima es 1.


Ten en cuenta que al repintar el rostro, es recomendable añadir el nodo FaceDetailer, que ayuda a mejorar los detalles faciales. Conecta la entrada al nodo correspondiente.
Añadir nodos:
FaceDetailer: UltralyticsDetectorProvider、SAMLoader (Impact)

Además, como solo necesitamos repintar el rostro y no restar dos máscaras, puedes seleccionar el nodo correspondiente, presionar Ctrl+B para ocultarlo y luego conectar los nodos correspondientes.
Este tipo de inpainting volverá a dibujar todo el rostro, haciendo que se vea como una persona diferente. Sobre cómo lograr diferentes expresiones en la misma persona, se publicará un tutorial más detallado más adelante. Finalmente, podemos guardar este flujo de trabajo para uso futuro.

Usando este método, podemos lograr muchos repintados con un solo clic.
Como aumento de pecho con un clic, aumento muscular con un clic, modificación facial con un clic, cambio de ropa o peinado con un clic, etc.

Método 2: Yoloworldwodel ESAM
Capaz de extraer rápidamente un objeto específico, con reconocimiento relativamente menos preciso en comparación con segment anything. Algunas partes (como el abdomen) pueden no ser detectables. Se puede usar junto con mask-mask.
I. Primero, sigue los mismos pasos que con "segment anything" e integra la función de detección automática de Yoloworld ESAM para identificar las áreas que necesitan ser repintadas. Tomando como ejemplo el “aumento muscular con un clic”, como no puede reconocer directamente las áreas que necesitan mejora muscular, se utiliza el enfoque de mask-mask para obtener las regiones a mejorar. Luego, se procesan las áreas enmascaradas según corresponda.

*Puedes escalar la imagen sobre la imagen original antes de comenzar.
Parámetros importantes:
confidence_threshold: Precisión del reconocimiento. Un valor menor da un reconocimiento más preciso.
iou_threshold: Grado de superposición de las cajas delimitadoras. Un valor menor da más precisión.
mask_combined: Si se superponen las máscaras. Si es "true", la máscara se combinará y se mostrará en una sola imagen. Si es "false", se mostrará por separado.
II. Integra la máscara en el nodo "InpaintModelConditioning" para las máscaras de inpainting. Los prompts solo afectarán las áreas enmascaradas. Según el modo Imagen a imagen, añade modelo - prompt - sampler - decode - imagen de previsualización.

III. Ajusta los parámetros relevantes y luego haz clic en “Generar”.

Aquí tienes más ejemplos de flujos de trabajo con ComfyUI para inspirarte.