убрать одежду с фото: как работает маскирование
Маска — ключевое звено в цепочке ИИ-обработки. От того, насколько точно алгоритм определит границы одежды, зависит всё. Разбираем технику маскирования изнутри.
Зачем нужна маска
Маска — это карта, которая указывает нейросети, где именно нужно произвести изменения. Без маски диффузионная модель не знала бы, какую часть изображения заменить, а какую оставить нетронутой. Точность маски определяет, где заканчивается оригинальный снимок и начинается сгенерированный контент.
Если маска неточна — граница между «оригиналом» и «генерацией» будет заметна, пропорции могут нарушиться, или в зону обработки попадут части тела, которые должны были остаться нетронутыми. Именно поэтому маскирование — это не вспомогательный этап, а критически важный компонент всей системы.
Этап 1: семантическая сегментация одежды
Первый шаг — автоматическое определение области одежды через семантическую сегментацию. Эта задача относится к классу dense prediction: модель должна классифицировать каждый пиксель изображения, присвоив ему метку из заданного набора классов.
В RazdevatorFoto используется модель на основе архитектуры SegFormer (трансформер для сегментации), специализированно дообученная на датасете одежды. Набор классов включает:
- Верхняя одежда (куртки, пальто, рубашки, блузки)
- Нижняя одежда (брюки, юбки, шорты)
- Цельные изделия (платья, комбинезоны, купальники)
- Аксессуары (шарфы, ремни, сумки)
- Кожа, волосы, фон — зоны, которые не должны затрагиваться
Выходом сегментационной модели является карта вероятностей — для каждого пикселя рассчитывается вероятность принадлежности к каждому классу. Финальная маска формируется через порог вероятности.
Этап 2: уточнение маски (mask refinement)
Первичная маска от сегментационной модели обычно содержит «шум» на границах и небольшие ошибки в сложных зонах (тонкие лямки, сложные паттерны, границы складок). Этап уточнения маски исправляет эти проблемы.
Применяются несколько техник:
- Morphological operations — математические операции расширения (dilation) и сужения (erosion) маски для сглаживания границ
- Conditional Random Field (CRF) — алгоритм, улучшающий точность границ маски с учётом цветовых переходов в оригинальном изображении
- Feathering — размытие краёв маски для мягкого перехода между оригинальной и сгенерированной зонами. Ширина feathering обычно 3–8 пикселей
Уточнённая маска значительно снижает вероятность появления «швов» на границе обработки.
Этап 3: расширение маски (mask expansion)
Перед передачей в диффузионную модель маска немного расширяется — на несколько пикселей за исходные границы одежды. Это контринтуитивный, но важный шаг.
Причина: диффузионная модель должна видеть небольшой контекст оригинального изображения за границей маски, чтобы правильно подобрать тон кожи и текстуру для плавного перехода. Без расширения модель «не знает», что находится прямо у края маски, и граница получается резкой.
Оптимальное расширение — 12–20 пикселей при разрешении 1024×1024. Слишком большое расширение стирает оригинальные детали у границ, слишком малое — даёт резкий «шов».
Этап 4: диффузионный инпейнтинг
Финальный этап — заполнение зоны маски через диффузионный инпейнтинг. Подготовленная маска и исходное изображение подаются в Diffusion v3.4.
В зоне маски добавляется шум с denoise_strength близким к 1.0 (практически полный шум). Незамаскированные зоны остаются нетронутыми или добавляется минимальный шум для лучшего смешивания. Затем модель итеративно «убирает» шум в маскированной зоне за 20–35 шагов, генерируя новый контент.
Параллельно с инпейнтингом работает ControlNet: карта ключевых точек тела и карта глубины, полученные из исходного изображения, задают структурные ограничения для генерации — поза должна сохраниться.
Этап 5: seamless blending
После генерации выполняется финальное смешивание: граница между сгенерированной и оригинальной зонами сглаживается через Poisson blending или alpha compositing с мягким градиентом прозрачности.
Этот этап устраняет оставшиеся тональные различия между зонами и создаёт впечатление единого цельного изображения. Именно seamless blending в значительной мере определяет, насколько «бесшовным» выглядит результат.
Почему качество маски влияет на всё
Каждый из описанных этапов взаимозависим. Ошибка на уровне сегментации (неправильно определённая граница одежды) не исправляется на последующих этапах — она лишь распространяется и усиливается. Поэтому снимки с чёткой контрастной границей между одеждой и кожей — однотонная одежда, хорошее освещение — обрабатываются значительно лучше, чем снимки со сложными многослойными образами или полупрозрачными тканями.
Оцените маскирование в действии
3 бесплатные HD-обработки. Без регистрации, без карты.
Открыть @DreamNeuroPhoto_Bot