Mask

mask — чёрно-белое изображение, определяющее активную область

Раздел
Параметры
Обновлено
18.05.26

Mask (маска) — чёрно-белое изображение, которое сообщает модели, где она должна работать, а где не трогать. Белые пиксели — активная область, чёрные — защищённая. Используется в inpainting (замена части картинки), outpainting (расширение), regional prompting (свой промпт по области), ControlNet и LoRA-региональных применениях. Главный инструмент локального редактирования в Stable Diffusion.

Коротко

Коротко. Mask — это чёрно-белое изображение того же размера, что и основная картинка. Белым отмечена область, где модель работает, чёрным — где не трогает. Промежуточные градации (серый) — частичное смешивание. Mask используется в inpainting, outpainting, regional prompting, ControlNet, regional LoRA. По сути — универсальный способ сказать модели «делай только тут».

Что это такое

Фотограф снял портрет на свадьбе. Композиция идеальная, лица чёткие. Но в углу кадра — лишний человек, испортил всё. Photoshop требует часа: магия пера, подбор фона, штамп.

Открывает ComfyUI. Загружает фото. Берёт инструмент «Mask Editor», белой кистью закрашивает лишнего человека. Промпт: empty wooden floor, soft lighting. Запускает inpainting. Через 6 секунд — фото без постороннего, на месте человека дорисован пол с плинтусом.

Это и сделала маска. Сообщила модели: «работай только в этой белой области, остальное не трогай». Чёрный пиксель — это «пиши keep_original». Белый — «генерируй заново». Серый — «смешивай частично».

Маска — это просто файл. Тот же PNG с альфа-каналом или отдельная чёрно-белая картинка размером с оригинал. Внутри Stable Diffusion она превращается в массив значений 0..1, который умножается на noise или на исходный латент в нужный момент sampling'а.

Где встречается:

  • Inpainting — замена области.
  • Outpainting — расширение за границы (маска покрывает «новую» зону).
  • Regional Prompting — каждому промпту своя маска области.
  • ControlNet preprocessor — некоторые препроцессоры выдают маску для последующего управления.
  • Regional LoRA — LoRA включается только в маске.
  • Composition guidance — ограничение, где должны появиться объекты.

Как это работает

В техническом смысле маска — это тензор 1 × H × W со значениями 0..1. На разных этапах sampling'а она применяется по-разному:

  1. В inpainting: на каждом шаге результат смешивается с исходной картинкой по формуле output = mask × generated + (1 − mask) × original. Где маска белая (1), берём сгенерированное; где чёрная (0) — оригинал.
  2. В regional conditioning: маска управляет cross-attention. Где маска белая, активна выбранная пара промпт+модель.
  3. В мягком inpainting: маска применяется не только к финальному пикселю, но и ко всем промежуточным шагам sampling'а. Это даёт более естественные переходы.

В ComfyUI маска — это отдельный тип данных (MASK), который ходит между нодами. Ноды для работы с маской:

  • Load Image (as Mask) — берёт PNG с альфа-каналом.
  • Mask Editor — рисовать маску прямо в браузере.
  • Mask From Image — конвертировать чёрно-белую картинку в маску.
  • Grow Mask, Blur Mask, Invert Mask — модификации.
  • Set Conditioning Mask — привязать к промпту.

Пример на практике

Иллюстратор делает обложку с двумя персонажами. После генерации замечает: лицо левого героя получилось «не в характере». Хочет переделать только лицо, остальное оставить.

В ComfyUI workflow:

  1. Load Image — загружает готовую обложку.
  2. Mask Editor — белой кистью закрашивает лицо левого героя. Радиус мягкости 12 пикселей.
  3. VAE Encode (for Inpainting) — кодирует картинку и маску в латент.
  4. CLIPTextEncode — новый промпт: serious face, sharp jawline, focused look.
  5. KSampler с denoise=0.7 — sampling только в маске.
  6. VAE Decode → Save Image.

Время — 8 секунд. Результат: лицо переделано, остальная композиция нетронута. Если бы не было маски, модель пересчитала бы всю картинку и сломала бы правую часть.

В FLUX и SDXL маски работают так же. У FLUX есть особенность — он лучше выдерживает мягкие маски с большим feather (20–40 пикселей), даёт более плавные переходы.

С чем часто путают

  • Mask и Selection — Selection в Photoshop похожее понятие, но в SD маска идёт всегда вместе с генерацией. Selection — отдельный графический инструмент.
  • Mask и Alpha-канал — маска часто хранится в альфа-канале PNG, но это два разных слоя информации. Альфа — прозрачность пикселя в файле; mask — управляющий сигнал для модели.
  • Mask и ControlNet — ControlNet получает структуру (контуры, позу), не маску. Маска говорит «где работать»; ControlNet — «как структурно».
  • Inpaint Mask и Region Mask — Inpaint mask определяет область для перерисовки. Region mask определяет область применения промпта/LoRA.
  • Mask и Crop — crop вырезает кусок и работает с ним отдельно. Mask работает с целым изображением, но активно только в указанной области.

Частые ошибки и заблуждения

  • «Жёсткая маска даёт точный результат». Часто наоборот: жёсткие границы провоцируют видимые швы. Мягкие края (feather 8–20 пикселей) дают более естественный результат.
  • «Маску можно делать только в графическом редакторе». Не обязательно. ComfyUI и AUTOMATIC1111 имеют встроенные браузерные редакторы. Для сложных случаев — Photoshop или Krita с экспортом PNG.
  • «Чёрная область защищена идеально». Не идеально. На этапе VAE Encode/Decode края могут чуть «утечь». Поэтому критичные области стоит расширять маской подальше за границы объекта.
  • «Inpaint только в маске — изменения не выйдут наружу». При большом denoise и неаккуратной маске изменения могут проявляться шире зоны. Решение — снизить denoise или сузить маску.
  • «Маска одна на всё изображение». В regional prompting и LoRA можно использовать сразу несколько масок одновременно — для разных регионов разные.

Связанные термины

  • Inpainting — главный сценарий применения маски.
  • Outpainting — маска для расширения границ.
  • Regional Prompting — маска как зона действия промпта.
  • Denoising Strength — управляет, насколько модель «свободна» внутри маски.
  • VAE Encode (for Inpainting) — нода ComfyUI, объединяющая картинку и маску.
  • ControlNet — рядом стоящий инструмент структурного контроля.
  • Feather / Blur Mask — модификация для мягких краёв.

Частые вопросы

Как сделать маску в AUTOMATIC1111? Зайти в img2img → Inpaint. Загрузить картинку. Белой кистью закрасить нужную область. Кисть и мягкость справа. Нажать Generate.

Какой формат файла нужен для маски? PNG с альфа-каналом или отдельный чёрно-белый PNG. Размер — точно как у основной картинки. Белое = область работы, чёрное = защита.

Что такое «inverted mask»? Перевёрнутая маска: чёрное и белое поменяны местами. Удобно, когда хочется работать «вне выделения». В ComfyUI — нода Invert Mask.

Зачем нужно «Grow Mask»? Расширяет белую область на N пикселей. Полезно, когда границы маски попадают близко к объекту — расширяем, чтобы захватить запас.

Можно ли использовать маску без inpainting-чекпоинта? Да. Любой обычный чекпоинт работает с масками. Но специализированные inpainting-модели (Realistic Vision Inpaint, SD Inpaint) на стыках обычно дают лучшие результаты.

Маска влияет на скорость? Минимально. Добавляет ~5–10% к времени sampling'а из-за дополнительных смешиваний. На быстрой видеокарте незаметно.

Главное

Маска — это управляющий слой, который сообщает Stable Diffusion, где можно работать, а где нет. Белым отмечена активная зона, чёрным — защищённая, серым — частичное действие. Используется в inpainting (замена области), outpainting (расширение), regional prompting (свой промпт на регион) и десятках других сценариев. Главный нюанс — мягкие края (feather 8–20 пикселей) дают переходы без швов. В ComfyUI это отдельный тип данных, в AUTOMATIC1111 — встроенный браузерный редактор кистью. По сути — универсальный способ хирургически работать с готовым изображением вместо генерации с нуля.