Мы рассмотрели вчера две нейросети по восстановлению имиджей и лиц на основе технологии GAN (generative adversarial networks или генеративно-состязательных сетей) - Real-ESRGAN и GFPGAN. Посмотрели на примерах.
Хотел сегодня показать, как работает модель восстановления лиц CodeFormer в проекте с графическим интерфейсом NMKD Stable Diffusion GUI.
Программа Stable Diffusion популярна как из командной строки, так и с графическим интерфейсом. Программа позволяет тренировать модель на современной видеокарте Nvidia RTX 3090 с 24 гигабайтами памяти. Поскольку у меня пока только RTX 3060 с 12 гигами - я пользовался чужими моделями. Смысл модели в том, что можно натренировать ее не на абы каких имиджах, а на серии вполне конкретных, по темам, и так получать максимальную отдачу от программы. Я пока пробовал несколько моделей из того, что есть в сети. Онлайн-сервис для тренировки моделей DreamBooth для Stable Diffusion к сожалению странно премодерируется, и натренировать там что-то поинтереснее тамошних примеров безобразных чебурашек из рогожки мне не удалось. Ссылки не даю чтобы зря не тратить время.
Stable Diffusion позволяет указать ключевые слова, по которым нейросеть пытается воссоздать изображение по примеру. Если установить ползунок в далеко от изначального оригинала - нейросеть рисует странные нелепые картинки. Если установить ползунок в максимальное приближение к оригиналу - нейросеть пытается воссоздать оригинал в улучшенном виде.
Я попробовал например указать цвет глаз синий и зеленый, высокую близость к исходнику и метод восстановления лиц CodeFormer.
Попробовал взять имидж очень низкого разрешения. В 10 раз уменьшил оригинальное изображение Маккензи, и из этого крохотного спичечного коробка восстанавливал лицо. Вот что было на входе и что получилось:
Stable Diffusion не сумел восстановить фактуру кожи, сделал ее мраморной и гладкой, безумно гламурной, но эта работа на порядок лучше того, что предлагают слабые и популярные у неспециалистов проекты с графическим интерфейсом, типа Topaz или Upscayl. Обратите внимание, что здесь мы вытягивали фотку высокого разрешения вообще из спичечного коробка 95х140 пикселей. Со столь сложной задачей, на мой взгляд, нейросеть справилась великолепно.
Как запустить нейросеть CodeFormer на питоне рассказано по ссылке. Там у лица больше фактуры.