Введение
В предыдущей статье мы узнали, что автоматическое маскирование — важнейший приём в процессах редактирования изображений, особенно при отделении объектов переднего плана от фона для таких задач, как дорисовка (in-painting) или композитинг. В этой статье мы рассмотрим, как использовать модель Segment Anything (SAM 2) вместе с ComfyUI для автоматизации процесса маскирования. Используя пользовательские узлы и рабочие процессы, можно эффективно задавать маски, смягчать края и заменять фон.
Содержание
Ключевые компоненты автоматического маскирования
1. Установка необходимых пакетов узлов и моделей
Чтобы начать автоматическое маскирование, необходимо установить следующее:
- Пакеты узлов:
Используйте ComfyUI Manager, чтобы найти и установить эти пакеты узлов. После установки перезапустите ComfyUI. - Модель SAM 2:
- Скачайте sam2.1_hiera_base_plus-fp16 модель с Hugging Face.
- Поместите модель в
ComfyUI/models/Sam2каталог. Если модель не установится автоматически, следуйте шагам ручной установки, приведённым на странице Hugging Face.
2. Настройка рабочего процесса
После установки необходимых инструментов можно создать рабочий процесс для автоматического маскирования. Вот пошаговое руководство:

Загрузка изображений
Начните с загрузки изображений переднего и заднего плана в ComfyUI с помощью Load Image узлов в ComfyUI. Убедитесь, что разрешение изображения известно, так как оно требуется для сегментации.
Получение разрешения изображения
Используйте Get Image Size узел из пакета Essentials, чтобы извлечь ширину и высоту загруженных изображений. Подключите выход Load Image узла к Get Image Size узлу.
Определение координат сегментации
Чтобы задать точки для сегментации:
- Добавьте
Points Editorузел из пакета KJNodes. - Подключите выходы изображения, ширины и высоты
Get Image Sizeузла кPoints Editor. - Щёлкните правой кнопкой мыши по
Points Editorузлу и выберите:- Преобразовать виджет во вход для ширины и высоты.
- Новый холст чтобы создать пустой холст.
Загрузка модели SAM 2
- Добавьте
Download SAM 2 Modelузел и убедитесь, что параметры модели заданы так:- Модель:
sam2_hiera_base_plus - Устройство:
cuda - Точность:
floating.16
- Модель:
- Подключите выход узла загрузчика к
SAM 2 Segmentationузлу.
Создание маски сегментации
- Добавьте
SAM 2 Segmentationузел. - Подключите изображение и координаты (положительные и отрицательные точки) из
Points Editorузла к узлу сегментации. - Просмотрите выход маски с помощью
Mask Previewузла из пакета Essentials.

3. Улучшение качества маски
Смягчение краёв с помощью размытия
Чтобы уточнить маску, используйте Grow Mask with Blur узел из пакета KJNodes:
- Разместите
Grow Mask with Blurузел междуSAM 2 Segmentationузлом иImage Composite Maskузлом. - Настройте следующие параметры:
- Радиус размытия: установите
2для более мягких краёв. - Значение расширения: установите
2 pixelsчтобы немного увеличить маску.
- Радиус размытия: установите
- Используйте
Mask Previewузел, чтобы визуализировать изменения в реальном времени.
Композитинг маски
Подключите выход Grow Mask with Blur узла к Image Composite Mask узлу. Это позволяет заменить фон, сохраняя целостность объекта на переднем плане.

4. Сохранение итогового изображения
Когда маска и замена фона вас устроят:
- Добавьте
Save Image Extendedузел, чтобы сохранить результат на диск. - Убедитесь, что
Queue Modeустановлен наQueue. - Отмените обход узла сохранения с помощью
Ctrl + Bи поставьте рабочий процесс в очередь, чтобы сохранить изображение.

Пример рабочего процесса
Ниже приведён пример настройки рабочего процесса:
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
Повышение точности маски
Чтобы обеспечить оптимальную точность маски:
- Используйте
Points Editorузел, чтобы точно задать точки переднего и заднего плана. - Поэкспериментируйте со значениями размытия и расширения в
Grow Mask with Blurузле, чтобы сбалансировать мягкость краёв и покрытие маски.