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