paint-brush
Создавайте шедевральные портреты домашних животных с помощью ComfyUIк@hacker5029997
380 чтения
380 чтения

Создавайте шедевральные портреты домашних животных с помощью ComfyUI

к 5m2024/08/19
Read on Terminal Reader

Слишком долго; Читать

Инструменты обработки изображений на основе ИИ прошли долгий путь за последние несколько лет. В наши дни довольно легко создавать красивые, стилизованные портреты людей и животных. Но модели ИИ крайне непредсказуемы, поэтому большинство инструментов полагаются на пользователя (или какого-либо человека), чтобы отсеять плохие поколения и найти лучшее. С помощью некоторых хитрых трюков и тщательной настройки вы можете построить конвейер, который надежно работает для большинства домашних животных. Он чрезвычайно устойчив к изменениям в позе, освещении и т. д.
featured image - Создавайте шедевральные портреты домашних животных с помощью ComfyUI
undefined HackerNoon profile picture
0-item

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


Это классическая проблема «человека в петле», которая часто преследует инструменты ИИ. Оказывается, с помощью некоторых хитрых трюков и тщательной настройки можно построить конвейер, который надежно работает для большинства домашних животных. Он чрезвычайно устойчив к изменениям в позе, освещении и т. д.


В этом посте я углублюсь в то, как это работает, и все эти маленькие хитрости, которые это позволяют. Вот несколько примеров портретов, которые вы можете создать с помощью этого конвейера.

Давайте начнем!

Ключевые ингредиенты

IP-адаптер

Суть техники — IPAdapter. По сути, это способ подсказать модели, используя изображение вместо текста (буквально это означает Image Prompt Adapter). Таким образом, вместо того, чтобы брать вложения текста, он использует изображение, чтобы получить вложения. Это очень мощно, потому что он может точно захватить стиль и структуру в изображении напрямую, вместо того, чтобы кому-то приходилось переводить то, что он хочет из изображения, в текст. В нашем узле ComfyUI IPAdapter у нас есть два входа, один для стиля и один для композиции. Мы используем изображение акварельной живописи для стиля и передаем исходное изображение для композиции (так как мы хотим сохранить ту же композицию, но изменить стиль).


Изображение выше используется в качестве графического приглашения для IPAdapter.

ControlNets

Теперь, когда у нас есть способ сохранить единообразие стиля, мы можем обратить внимание на точное представление питомца. IPAdapters сильно склоняются к качеству изображения, и страдает сходство изображения. Поэтому нам нужно что-то сделать, чтобы вывод выглядел как тот же объект, что и ввод.


Ответ на этот вопрос — ControlNet. ControlNets — еще один классный метод предоставления дополнительных ограничений для процесса генерации изображения. Используя ControlNet, вы можете указать ограничения в виде краев, глубины, позы человека и т. д. Отличительной особенностью ControlNets является то, что их можно накладывать друг на друга. Таким образом, вы можете иметь edge controlnet, который заставляет выход иметь такие же края, как и вход, а также depth controlnet, который заставляет выход иметь такой же профиль глубины. И это именно то, что я здесь делаю.


Выход Canny Edge ControlNet (слева) и depth ControlNet (справа). Они заставляют выход выглядеть похожим на вход.


Оказывается, controlnets не только можно накладывать друг на друга, но они также могут работать в тандеме с IPAdapter, упомянутым выше. Итак, вот инструменты, которые мы будем использовать для этого: IPAdapter с исходным изображением для получения стиля, ControlNet с canny edge detector для ограничения на основе краев и controlnet с глубиной для ограничения на основе профиля глубины.


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

Тонкая настройка

Вы когда-нибудь находили модель с потрясающими примерами выходных данных, пробовали ее на собственных изображениях и понимали, что они выглядят ужасно? Часто единственной причиной этого является то, что модель не была настроена под ваши изображения. Иногда это может показаться полным блокировщиком, потому что с чего нам вообще начинать тонкую настройку предварительно обученной модели?! Вот что я узнал по этой теме. Это выходит за рамки этого конкретного конвейера, поэтому это хорошие знания, которые полезно иметь в целом.

ControlNets

ControlNets очень мощные, поэтому нужно быть осторожным, чтобы контролировать их влияние на вывод. К счастью, пользовательские узлы в ComfyUI позволяют нам уменьшить влияние controlnets, а также остановить их влияние в любой момент. Поэтому мы устанавливаем детектор краев на 75% и останавливаем его влияние на генерацию на 75%, а детектор глубины останавливается на 30%. Причина, по которой мы останавливаем их в конце, а не просто уменьшаем их силу, заключается в том, что это позволяет сети «очистить» любые артефакты, вызванные ими на последних нескольких шагах, без внешних ограничений. Это просто делает изображение красивее. Поэтому он использует только свои обучающие данные, чтобы все выглядело как можно лучше, игнорируя края и глубину.



Другая важная вещь для настройки — это KSampler. Здесь происходит много мелочей, но я просто кратко коснусь некоторых из них:

KSampler - Шаги

Сначала у нас есть шаги. Это буквально количество раз, которое модель будет многократно запускаться. Чем больше она запускается, тем более стилизованным становится ваш вывод и тем дальше он будет отходить от исходного изображения. Эффекты этого часто не так очевидны, поэтому стоит поиграться с этим.


KSampler - CFG

А еще есть CFG. Честно говоря, я не совсем это понимаю, но из его названия - Classifier Free Guidance - я предполагаю, что он контролирует, насколько модели разрешено изменять изображение без ограничений подсказками, чтобы оно выглядело лучше. Это также существенно влияет на выходное изображение, так что стоит поиграться с ним.


Denoise

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


Текстовая подсказка

Одна вещь, которую вы заметите, это текстовая подсказка, о которой я никогда не упоминал до сих пор! Удивительно, поскольку это обычно единственное условие, которое вы обычно предоставляете диффузионным моделям. Но в этом случае у нас так много других способов условия, что текстовые подсказки обычно просто мешают. Так что в этом случае подсказка — это буквально просто «собака». Я использую текстовую подсказку немного больше в некоторых более стилизованных портретах, например, собака-повар или собака в ванной.

Добавление аксессуаров

По сути, это более или менее просто «AI Filter», который преобразует изображения в акварельные портреты. Но удивительно, насколько гибким это может быть. Например, чтобы сделать портрет собаки, принимающей душ, я буквально просто собрал изображения в инструменте для редактирования изображений и использовал его в качестве входных данных! Модель заботится об объединении всего и очистке изображения.


Заключение

Теперь удалите фон, добавьте текст и вуаля! У вас получился прекрасный портрет, на котором запечатлены все мельчайшие детали вашего питомца, и он всегда представлен в лучшем свете!


Огромное спасибо @cubiq за его работу над узлами ComfyUI и его потрясающую серию объяснений на youtube! Большая часть этого конвейера была построена и объяснена им в его видео.


Если вы хотите получить портрет домашнего животного, не прибегая ко всем этим сложностям, рассмотрите возможность покупки его здесь: pawprints.pinenlime.com!