Mask
mask — чёрно-белое изображение, определяющее активную область
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'а она применяется по-разному:
- В inpainting: на каждом шаге результат смешивается с исходной картинкой по формуле
output = mask × generated + (1 − mask) × original. Где маска белая (1), берём сгенерированное; где чёрная (0) — оригинал. - В regional conditioning: маска управляет cross-attention. Где маска белая, активна выбранная пара промпт+модель.
- В мягком 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:
- Load Image — загружает готовую обложку.
- Mask Editor — белой кистью закрашивает лицо левого героя. Радиус мягкости 12 пикселей.
- VAE Encode (for Inpainting) — кодирует картинку и маску в латент.
- CLIPTextEncode — новый промпт:
serious face, sharp jawline, focused look. - KSampler с
denoise=0.7— sampling только в маске. - 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 — встроенный браузерный редактор кистью. По сути — универсальный способ хирургически работать с готовым изображением вместо генерации с нуля.