Inpainting и outpainting
Урок про точечное редактирование: заменить часть картинки или продлить её за края.
Inpainting — перерисовка выделенной маской области картинки по новому промпту. Outpainting — дорисовка картинки за её исходные границы.
Inpainting: чинить и заменять
Иногда картинка почти идеальна, но что-то не так: кривая рука, лишний предмет, неудачный фон. Inpainting позволяет выделить маску — область, которую нужно перерисовать, — и сгенерировать там новое содержимое по промпту, оставив остальное нетронутым.
исходник: [небо][дерево][машина]
маска: [ XXX ] (выделили машину)
промпт маски: "красный велосипед"
результат: [небо][дерево][велосипед]Outpainting: расширить кадр
Outpainting — обратная по духу задача: не заменить кусок, а дорисовать то, чего на картинке не было, за её краями. Так из портрета можно получить картинку в полный рост, а из квадратного кадра — широкий пейзаж. Модель «придумывает» продолжение, опираясь на то, что уже есть у границы.
Как работает под капотом
Оба режима — частный случай img2img с маской. Внутри маски модель расшумляет «как обычно», а вне маски на каждом шаге латент возвращают к исходной картинке. Так перерисованная область естественно стыкуется с нетронутой: соседние пиксели служат контекстом через cross-attention и skip-связи U-Net. Для outpainting исходный кадр сначала помещают на больший холст, а пустые поля объявляют маской — дальше всё как в inpainting.
Частые ошибки
- Слишком узкая маска. Если оставить мало места по краям, новая область плохо стыкуется; берите маску с запасом.
- Промпт всей картинки вместо промпта области. Для inpainting описывайте то, что должно появиться в маске, а не всю сцену.
- Резкие швы при outpainting. Дорисовывайте по чуть-чуть (узкими полосами), а не сразу огромное поле.
Сила зашумления и края маски
Внутри маски действует тот же denoising strength, что и в обычном img2img. Высокая сила (0.9–1.0) полностью перерисовывает область — удобно, когда нужно заменить объект целиком. Низкая (0.3–0.5) лишь правит то, что уже есть в маске, сохраняя форму. Отдельная важная настройка — размытие границы маски: резкая граница даёт видимый шов, а мягкая растушёвка в несколько пикселей помогает новой области плавно перетечь в старую.
Помните, что маска работает в латенте, который в 8 раз мельче картинки. Поэтому микроскопическая ретушь пиксель-в-пиксель (убрать один волосок) inpainting удаётся плохо — латент просто не хранит такого разрешения. Его стихия — замена целых объектов и крупных участков. Для тонкой ручной ретуши лучше подходит обычный графический редактор, а inpainting приберечь для содержательных правок.
Итог
- Inpainting перерисовывает выделенную маской область, сохраняя остальное.
- Outpainting дорисовывает картинку за её исходные границы.
- Оба — частные случаи img2img с маской; вне маски латент держат близким к оригиналу для бесшовной стыковки.