Inpainting
inpainting — генеративное редактирование выбранной маской области
Inpainting меняет часть изображения внутри маски и старается связать новую область с окружением. Так удаляют предметы, меняют одежду, исправляют детали и восстанавливают утраченный фрагмент. Результат зависит от модели, формы маски, контекста вокруг неё и силы денойзинга; универсальных настроек для любой правки нет.
Коротко
Коротко. Inpainting — это генерация внутри выбранной области. Пользователь задаёт исходное изображение, маску и описание изменения, а модель дорисовывает новые пиксели с учётом соседнего света, перспективы и текстуры. Что останется нетронутым снаружи, зависит от способа сборки и финального compositing.
Что это такое
Представим фотографию стены с лишним логотипом. Маска закрывает логотип, а промпт описывает чистую штукатурку. Модель получает окружение и строит содержимое, которое могло бы естественно продолжить стену.
Тот же принцип подходит для разных задач:
- убрать предмет или провод;
- заменить одежду;
- дорисовать часть лица или руки;
- восстановить повреждённый участок старого снимка;
- добавить объект в свободное место;
- изменить надпись, сохранив остальную композицию;
- исправить локальный артефакт генерации.
Inpainting встречается в локальных интерфейсах и облачных редакторах. Названия кнопок и моделей меняются, но основа остаётся: область изменения задаётся маской.
Как это работает
В latent diffusion типичный pipeline выглядит так:
- исходное изображение кодируется через VAE;
- маска переводится в размер и формат латента;
- область изменения получает шум или другой стартовый латент;
- sampler денойзит её с учётом промпта и окружающего изображения;
- VAE декодирует результат;
- новый фрагмент компонуется с исходником.
Специализированная inpainting-модель может получать дополнительные каналы с маской и замаскированным изображением. Обычная модель тоже способна работать в некоторых схемах, но границы, контекст и способ заполнения будут отличаться.
Главные параметры
Маска. Определяет область редактирования. Один pipeline считает белое зоной замены, другой может инвертировать смысл, поэтому полезна визуальная проверка.
Denoise. Управляет тем, насколько далеко генерация уходит от исходного латента. Небольшое значение сохраняет структуру, большое разрешает полную замену. Чувствительность зависит от sampler и модели.
Padding или crop around mask. Добавляет контекст вокруг маски. Слишком тесный crop мешает связать свет и форму, слишком широкий тратит разрешение на неизменяемую часть.
Feather или mask blur. Смягчает переход. Жёсткий край подходит точной геометрии, мягкий помогает смешать волосы, ткань, кожу и свет.
Fill mode. Определяет, с чего начинается замаскированная область: исходное содержимое, шум, пустой латент или другой вариант.
Разрешение обработки. Маленькая деталь может получить больше полезных пикселей, если pipeline отдельно кадрирует область и затем возвращает её в полный снимок.
Пример на практике
На портрете нужно заменить рубашку на вязаный свитер, не меняя лицо и фон.
- Маска покрывает рубашку с небольшим запасом у краёв.
- В crop попадает часть шеи, рук и фона — они дают модели свет и форму.
- Промпт описывает свитер, вязку, цвет и направление освещения.
- Первый проход проверяет крупную форму, а не мелкую фактуру.
- Если воротник ломает подбородок, маска и crop корректируются до следующей генерации.
- Удачный фрагмент компонуется с оригиналом, после чего край проверяется на полном размере.
Нужное число попыток зависит от сцены. Подмена сложной одежды с пересечением волос и рук требует больше работы, чем удаление небольшого пятна на однотонной стене.
Почему появляются швы
Шов возникает, когда новый фрагмент не совпадает с окружением по одному или нескольким признакам:
- маска заканчивается на заметной текстуре;
- модель не видит достаточно контекста;
- меняются цветовая температура и контраст;
- VAE по-разному передаёт детали внутри и снаружи;
- denoise слишком велик для маленькой правки;
- объект выходит за границу маски;
- исходник и генерация имеют разную резкость или шум.
Иногда помогает более мягкий край, иногда — большая область и новый контекст. Автоматическое увеличение blur без понимания причины способно только размазать проблему.
Лица, руки и мелкие детали
Для лица полезен отдельный крупный crop: в маленькой области модели не хватает пикселей на глаза и рот. Специализированная inpainting-модель, детектор лица или дополнительный референс могут повысить стабильность, но не гарантируют точную личность.
Если важно сохранить человека, результат сравнивают не только визуально. Геометрия глаз, родинки, линия волос и возраст могут незаметно измениться. В некоторых проектах надёжнее обычная ретушь или композит из исходной фотографии.
С чем часто путают
- Inpainting и img2img. Img2img обычно преобразует весь кадр, а inpainting ограничивает основную генерацию маской.
- Inpainting и outpainting. Outpainting расширяет изображение за прежние границы.
- Inpainting и generative fill. Generative fill — продуктовое название похожего сценария; внутренняя модель и контроль могут отличаться.
- Inpainting и face restoration. Face restoration применяет специализированную обработку лица, иногда автоматически; inpainting работает с произвольной маской.
- Маска и segmentation. Сегментация автоматически находит объект, а маска — уже готовое указание области. Одно может создавать другое.
Частые ошибки и заблуждения
«Самая точная маска всегда лучшая». Узкая граница может оставить куски старого объекта и не дать модели перестроить контакт с окружением. Иногда нужен запас, иногда — почти точный край.
«Большой denoise улучшает любую замену». Он даёт свободу, но быстрее меняет форму и связь с исходником. Для локальной коррекции такая свобода может мешать.
«Специализированная модель всегда лучше обычной». Она часто лучше понимает маску, но качество зависит от стиля, архитектуры и обучения. Проверка на конкретном кадре надёжнее названия checkpoint.
«Лицо вне маски точно сохранится». Если pipeline декодирует и сохраняет весь кадр без исходного composite, VAE способен изменить пиксели. Дополнительные влияния могут затронуть и соседнюю область.
«Автоматическая маска не требует проверки». Детектор может потерять прозрачный край, волосы, ремешок или отражение. Такая ошибка проявится уже после дорогой генерации.
Частые вопросы
Какую inpainting-модель выбрать? Совместимую с базовой архитектурой, VAE и способом подключения. В карточке модели полезны готовый workflow, лицензия и примеры на похожем стиле.
Можно ли использовать обычный checkpoint? Да, если интерфейс поддерживает соответствующий latent или differential diffusion pipeline. Специализированные веса иногда лучше смешивают границы, но это не универсальное правило.
Как выбрать denoise? По масштабу изменения. Для сохранения исходной структуры нужен меньший уход, для нового объекта — больший. Несколько значений сравнивают при фиксированных остальных настройках.
Как сделать маску автоматически? Её может построить сегментационная или детектирующая модель по точке, рамке или текстовому описанию. Перед запуском край всё равно полезно посмотреть в масштабе 100%.
Почему новый предмет не помещается? Маска или crop не оставляют достаточно пространства, а промпт конфликтует с позой и перспективой. Расширение области и более простой первый проход часто полезнее длинного описания.
Главное
Inpainting — управляемое редактирование внутри маски. Качество складывается из четырёх вещей: подходящей модели, понятной области, достаточного контекста и аккуратного compositing. Маска говорит, где менять изображение, но хороший результат появляется только тогда, когда новый фрагмент согласован с окружающим светом, формой и фактурой.