Как стать автором
Поиск
Написать публикацию
Обновить

Обзор способов доработки нейрогенерированных изображений

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров462

Как часто можно увидеть, сгенерированные диффузными нейросетями картинки часто отличаются неудовлетворительным качеством в деталях, хотя в целом в них не всегда можно распознать любительскую работу с очень беглого взгляда. Таким образом, если улучшать детали удачной нейрогенерации (без сильных дефектов общего построения), то результат уже вызовет меньше нареканий у зрителей (за исключением наиболее радикальных пуристов от искусства, разумеется). Какими могут быть эти дефекты? Например, пресловутые лишние/недостающие пальцы на руках, ненужные летающие объекты, ошибки освещения, дефекты перекрытия (скрытая линия не продолжается в ожидаемом месте) и тому подобное.

Итак, за несколько лет методы улучшения картинок постепенно прогрессировали вместе со способами их генерации. Эти методы можно разделить на ручные (когда картинка исправляется в графическом редакторе) и автоматизированные (когда картинку исправляет нейросеть). Граница между ними довольно зыбкая и условная, и обычно никому до неё нет дела.

Я предполагаю, что читатель уже поверхностно знаком с оболочками вроде ComfyUI/WebUI и у него нет проблем с их запуском, но желает расширить свои знания приёмов, которые с ними доступны. В этой неглубокой обзорной статье я сосредоточусь на эффектах, которых позволяют добиться инструменты, без погружения в чрезмерно сложные технические детали под их капотом.

Исправление графическими редакторами

Поскольку автор статьи — не профессиональный цифровой художник, то графическим редакторам будет уделено не так много внимания.

Целиком ручное исправление

Принцип прост: вы переключаетесь на графический редактор (Adobe Photoshop, Krita и им подобные), открываете в нём сгенерированную картинку, подбираете цвета и исправляете кистью и другими инструментами то, что в ней не нравится. Этот способ имеет некоторые ограничения: например, без кропотливой подготовки вы можете не вполне свободно владеть редакторами или просто не знать, как именно изобразить желаемую деталь вместо дефекта.

Достоинства: степень контроля зависит только от художника.

Недостатки: трудоёмкость.

Полуавтоматические средства редакторов

Иногда можно срезать углы и вместо кропотливой работы кистями обвести досаждающий дефект картинки и удалить/размыть его инструментов вроде "Умная заплатка" (в Krita). В этом способе немного меньше ручной работы и выбора цветов.

Так можно получить удачный результат... Или не получить, если объект не изолирован от соседей.

Не делайте так
Не делайте так

В целом, работать над результатом вручную — занятие достойное, но длительное. Поэтому существуют более быстрые (но менее точные) способы.

Исправление нейросетями

Remove object / Remove background

В оболочках вроде ComfyUI можно найти инструменты для удаления объекта/фона. Достаточно просто обвести маской нежелательный объект или просто подать на удаление фон.

Эти инструменты довольно лаконичны и несложны в управлении. Под капотом находятся легковесные нейросетки, которые крайне быстро (по сравнению с сэмплером) делают свою работу.

Remove Object: Убраны несколько камней; метод похож на Умную заплатку в ограничениях и работает лучше, когда у объекта нет шумных соседей
Remove Object: Убраны несколько камней; метод похож на Умную заплатку в ограничениях и работает лучше, когда у объекта нет шумных соседей
RemBg: Убран фон. Как можно видеть по лапам, у метода есть границы применимости.
RemBg: Убран фон. Как можно видеть по лапам, у метода есть границы применимости.

Достоинства: очень высокая скорость, низкая сложность.

Недостатки: малая гибкость.

Inpaint

На картинке выделяется маской дефект и отдаётся на перерисовку в сэмплер, а затем сшивается с оригиналом.

Картинка + Маска = Картинка
Картинка + Маска = Картинка

Это широко распространённый инструмент, который можно отыскать даже в онлайн-интерфейсах типа Midjourney, которые обычно предоставляют менее богатый функционал, чем локальные оболочки вроде ComfyUI или WebUI.

У моделей на основе SDXL в паре к основной модели может идти её inpaint-версия; впрочем, новейшие модели достаточно хороши, чтобы основная модель тоже могла сносно дорисовывать картинку.

Частный случай inpaint — crop‑and‑stitch (спорный фрагмент увеличивается, перерисовывается, уменьшается и склеивается обратно). На картинках с большим разрешением может дать экономию времени, поскольку обрабатывается только прямоугольник вокруг маски, а не всё изображение в целом; однако это может привести и к утрате контекста, так что качество результата снизится.

Достоинства: гибкость, умеренный контроль над процессом.

Недостатки: случайность результатов (может оказаться, что вы не получите желаемого за все попытки).

HiResfix

Общая слабость диффузных моделей — объекты с маленьким масштабом. Чем меньше пикселей занимает объект и чем дальше это от привычного для модели размера, на котором она обучалась — тем хуже результат. Но это также подразумевает, что часто можно улучшить результат, просто увеличив картинку в 1.5–2 раза и отдав внутрь сэмплера.

Я часто сталкивался с характерными артефактами при прямолинейной реализации этой идеи, поэтому по советам более опытных любителей нейрогенераций перешёл на усовершенствованную версию: картинка увеличивается в 2/4/8 раз отдельной нейросетью (Remacri, UltraSharp, DAT, множество их), затем доводится до желаемого масштаба алгоритмическим способом (например, nearest‑exact) и только после этого отдаётся в узел сэмплера, обычно с уровнем шума около 20-40%: это меняет картинку, но не настолько чтобы рисовалась радикально новая.

Не смотри на стул @ Ты проиграл
Не смотри на стул @ Ты проиграл

Достоинства: может исправить всю картинку системно и целиком при малых трудозатратах. Модели генерируют картинки с высокой внутренней связностью; из-за этого они могут корректно согласовывать в разных участках картинки освещение, детали персонажей и прочие сложные вещи.

Недостатки: медлительность, возможное слабо контролируемое изменение базовой цветовой гаммы картинки и/или уровня детализации, случайность процесса.

ControlNet

Это довольно вариативный подход, позволяющий извлечь особенности картинки-донора и перенести на новую нейрогенерацию. Его можно и нужно совмещать с inpaint, например для контроля удачно найденной формы, в которой есть фатальные недостатки.

Карта глубины — одна из нескольких моделей ControlNet
Карта глубины — одна из нескольких моделей ControlNet

MeshGraphormer

Эта технология (в основном для исправления геометрии рук персонажей) появилась больше года назад на основе исследований Microsoft, но я не смог запустить её из-за конфликта пакетов в её расширении ComfyUI, поэтому просто упомяну, что она существует. Возможно, кто-то ею даже пользуется.

Inpaint + Machine Vision

Люди довольно требовательны к деталям лиц. Через них они получают довольно много информации о состоянии персонажей. Из-за этого в ComfyUI Impact Pack есть нода, известная как Face Detailer (её аналог в WebUI ищется по имени плагина Adetailer). Её внутренности происходят от довольно неожиданного источника.

За десяток лет люди накопили крайне мощный и быстродействующий инструментарий по поиску лиц на видео уличных камер. А потому одну из таких YOLO-моделей приспособили для полуавтоматического исправления картинок. Этот подход настолько хорош, что может найти даже лица в аниме-стилистике, после чего идёт коррекция через inpaint. Часть картинки будет увеличена и пропущена сквозь сэмплер.

Впрочем, можно взять вместо модели распознавания лиц что-нибудь другое: например, искать персону, или руки, или собак, или кошек, или детали одежды.

Остальную часть схемы я спрятал за кадром, чтобы не пугать вермишелью
Остальную часть схемы я спрятал за кадром, чтобы не пугать вермишелью

Достоинства: скорость и потенциал автоматизации.

Недостатки: изменённый фрагмент картинки может поменять цветовую гамму в случае ошибок настройки.

Inpaint + DAAM

Технология DAAM (Diffusion Attentive Attribution Maps, карты атрибуции внимания и диффузии) малоизвестна. Она позволяет подсветить слова промпта на получившейся картинке. Я встретил однажды её упоминание как рекомендацию для контроля качества обучаемых моделей и LoRA. Это удобный инструмент, чтобы исследовать токены в незнакомом домене и подбирать себе охапку волшебных слов, которыми можно точнее влиять на качество и смысл генерируемой картинки. Если чудо-слово не работает, это можно довольно достоверно узнать с помощью подсветки.

Из любопытства я модифицировал этот метод (поскольку это частный случай машинного зрения) и наскоро сделал ноду ComfyUI, которая вместо подсветки отдаёт маску, которая и идёт внутрь inpaint. Но DAAM подсвечивает далеко не цельный объект, поэтому я пока не вижу перспектив у этого метода - он проигрывает по точности YOLO-моделям. Однако он крайне гибок (им можно найти на картинке буквально всё, что может генерировать модель), а обычные модели машинного зрения требуют предварительного обучения.

Прежней ложки нет
Прежней ложки нет

Достоинства: высокая гибкость.

Недостатки: эта технология экспериментальна, слабее изучена и требует предварительного исследования границ влияния токенов (например, карта внимания приснопамятного тега 1girl на поверку оказывается размазана по всей картинке и попытка перерисовать по нему напрямую вызовет слишком сильное искажение результата).

Послесловие

Это, разумеется, не все существующие способы доработки нейрогенераций. В фазе постобработки вы можете попробовать исправить баланс цветов на картинке в целом, наложить LUT, просто выкинуть части картинки (обрезав её края) и многое другое — способы работы наследуются от обычной цифровой живописи и расширяются нейронными сетями; а достаточно богатые оболочки с богатым разнообразием плагинов позволяют их применять, не переключаясь в обычный графический редактор. Эта область довольно молодая и постоянно расширяется, так что спустя год эта статья может быть существенно менее актуальна благодаря какому-нибудь прорывному методу. Несколько лет назад сама возможность "починить картинку" промптом могла выглядеть как магия, а сейчас это просто рутина, к которой примешана толика расчёта и везения.

Моя лапша для конкурсов на CivitAI
Моя лапша для конкурсов на CivitAI

Достаточно обширная схема генерации может работать как конвейер по производству картинок на заданную тему, где нужно сравнительно мало ручного отсева; впрочем, ничего (кроме времени) не мешает разбить большую универсальную схему на части и пропускать выбранные картинки сквозь них, руководствуясь собственными вкусами.

Теги:
Хабы:
+3
Комментарии2

Публикации

Ближайшие события