C30: Artículo optimizado: enmascaramiento automático con Segment Anything

Introducción

En el artículo anterior, aprendimos que el enmascaramiento automático es una técnica fundamental en los flujos de trabajo de edición de imágenes, especialmente al aislar sujetos en primer plano de los fondos para tareas como el inpainting o la composición. En este artículo exploraremos cómo usar el modelo Segment Anything (SAM 2) con ComfyUI para automatizar el proceso de enmascaramiento. Al aprovechar nodos y flujos de trabajo personalizados, puedes definir máscaras de forma eficiente, suavizar bordes y reemplazar fondos.



Componentes clave para el enmascaramiento automático

1. Instalar los paquetes de nodos y modelos necesarios

Para empezar con el enmascaramiento automático, tienes que instalar lo siguiente:

  • Paquetes de nodos:
    Usa el Administrador de ComfyUI para buscar e instalar estos paquetes de nodos. Una vez instalados, reinicia ComfyUI.
  • Modelo SAM 2:
    • Descarga el sam2.1_hiera_base_plus-fp16 modelo desde Hugging Face.
    • Coloca el modelo en el ComfyUI/models/Sam2 directorio. Si el modelo no se instala automáticamente, sigue los pasos de instalación manual indicados en la página de Hugging Face.

2. Configurar el flujo de trabajo

Una vez instaladas las herramientas necesarias, puedes crear un flujo de trabajo para el enmascaramiento automático. Aquí tienes una guía paso a paso:

Cargar imágenes

Empieza cargando las imágenes de primer plano y de fondo en ComfyUI con los Load Image nodos en ComfyUI. Asegúrate de conocer la resolución de la imagen, ya que es necesaria para la segmentación.

Obtener la resolución de la imagen

Usa el Get Image Size nodo del paquete Essentials para extraer el ancho y el alto de las imágenes cargadas. Conecta la salida del Load Image nodo al Get Image Size nodo.

Definir las coordenadas de segmentación

Para especificar los puntos de segmentación:

  1. Añade el Points Editor nodo del paquete KJNodes.
  2. Conecta las salidas de imagen, ancho y alto del Get Image Size nodo al Points Editor.
  3. Haz clic con el botón derecho en el Points Editor nodo y elige:
    • Convertir widget en entrada para el ancho y el alto.
    • Lienzo nuevo para crear un lienzo en blanco.
Cargar el modelo SAM 2
  1. Añade el Download SAM 2 Model nodo y asegúrate de que los parámetros del modelo estén configurados así:
    • Modelo: sam2_hiera_base_plus
    • Dispositivo: cuda
    • Precisión: floating.16
  2. Conecta la salida del nodo cargador al SAM 2 Segmentation nodo.
Crear la máscara de segmentación
  1. Añade el SAM 2 Segmentation nodo.
  2. Conecta la imagen y las coordenadas (puntos positivos y negativos) del Points Editor nodo al nodo de segmentación.
  3. Obtén una vista previa de la salida de la máscara con el Mask Preview nodo del paquete Essentials.

3. Mejorar la calidad de la máscara

Suavizar los bordes con desenfoque

Para refinar la máscara, usa el Grow Mask with Blur nodo del paquete KJNodes:

  1. Coloca el Grow Mask with Blur nodo entre el SAM 2 Segmentation nodo y el Image Composite Mask nodo.
  2. Ajusta los siguientes parámetros:
    • Radio de desenfoque: ajústalo a 2 para bordes más suaves.
    • Valor de expansión: ajústalo a 2 pixels para agrandar ligeramente la máscara.
  3. Usa el Mask Preview nodo para visualizar los cambios en tiempo real.
Componer la máscara

Conecta la salida del Grow Mask with Blur nodo al Image Composite Mask nodo. Esto te permite reemplazar el fondo manteniendo la integridad del sujeto en primer plano.


4. Guardar la imagen final

Cuando estés satisfecho con la máscara y el reemplazo del fondo:

  1. Añade un Save Image Extended nodo para guardar la salida en el disco.
  2. Asegúrate de que el Queue Mode esté establecido en Queue.
  3. Desactiva la omisión del nodo de guardado con Ctrl + B y pon en cola el flujo de trabajo para guardar la imagen.

Flujo de trabajo de ejemplo

A continuación, un ejemplo de la configuración del flujo de trabajo:

1. Load Image Node → Get Image Size Node → Points Editor Node  
2. Download SAM 2 Model Node → SAM 2 Segmentation Node → Mask Preview Node  
3. Grow Mask with Blur Node → Image Composite Mask Node → Save Image Extended Node  


Mejorar la precisión de la máscara

Para garantizar una precisión óptima de la máscara:

  • Usa el Points Editor nodo para definir con precisión los puntos de primer plano y de fondo.
  • Experimenta con los valores de desenfoque y expansión en el Grow Mask with Blur nodo para equilibrar la suavidad de los bordes y la cobertura de la máscara.

Referencias

Deja un comentario