Давно задавался вопросом, как генерировать одного и того же персонажа с нуля для тренировки LORA, чтобы потом без проблем воссоздавать его уже более точно, в разных стилях и обстановках.
Выявил я всего два метода: один для создания разных ракурсов и поз, а второй для замены фонов, освещения, углов съемки.
Занимает данная процедура считанные минуты, отчего я и решил написать гайд.
Ну а весь прикол в том, что я случайно поставил черную точку на скелет Openpose в ControlNet, когда редактировал позу персонажа с коллегой, и получил ту же самую тянку, но немного в другом ракурсе. Более того, с данным методом работает только модель Openpose, другие генерят шлак. Стандартный img2img тоже не подходит для этой задачи — результат всегда разный и непредсказуемый.
Вот как выглядел скелет до и после того, как я случайно поставил точку в редакторе:
Что нам понадобится?
Во-первых, установленный либо локально, либо в облако Automatic1111. Прикреплю ссылки на лучшие по моему мнению гайды, можете смело пользоваться. В случае проблем готов помочь в чате.
Также нам нужен ControlNet с моделью openpose. Скачать все это вы можете по ссылке из моего телеграма — я собрал для вас все в одном месте, чтобы вы не носились по интернету.
Помимо этого я выложил все исходники, можете глянуть и поэкспериментировать на их основе.
Еще вы должны скачать эти две картинки. Да, именно их. Не делайте преждевременных выводов, пожалуйста.
Перейдем к практике
Первым делом открываем Automatic1111 и подбираем промпт для нашего будущего персонажа. Рекомендую следующую структуру:
(furry cute fox woman:1.4), 21 years old, big eyeballs, big eyes, red demon eyes,(cartoon:1.3), art, greg rutkowski,ocean, water, splashes, cyberpunk, citysun light, neon light, soft lightsmedium shot
В первой строке мы описываем общие детали персонажа — его возраст, пол, телосложение и т.д. Далее задаем художественный стиль; затем общие детали окружения; после чего обозначаем освещение, колоризацию, насыщенность и яркость. Последним шагом объясняем нейронке, в каком ракурсе отображать нашего персонажа: в моем случае лисичка будет нарисована по пояс.
Сейчас мы будем работать во вкладке txt2img, чтобы создать как можно больше вариантов лисичек, дабы затем уже их поместить на разные фоны и под разное освещение.
Обратите внимание на мои настройки. Самое здесь интересное, что seed мы ставим на (-1) — это дает нереальную вариативность с сохранением главного персонажа. Для этого нам нужно в ControlNet выбрать модель Openpose и загрузить в нее нашу картинку, после чего клацнуть на Generate.
Можем сразу поставить batch size на 10, чтобы получить больше результатов. И еще не забывайте про второе изображение, состоящее из шума (скачивали в начале статьи). Оно дает больше вариативности, но не всегда держит первоначальный образ. Советую поэкспериментировать! Просто меняете белый квадрат на шум.
Как вы видите, уже сейчас они очень похожи, и каждую из них мы вправе сохранять и затем генерировать на разных фонах и при разном освещении, чтобы расширить дата-сет для тренировки модели.
Советую заранее подготовить стили, чтобы не трогать основной промпт. Я, к примеру, создал стиль для городской обстановки, моря, гор и поля с подсолнухами. Далее вы просто выбираете эти стили и получаете замененный фон.
Я взял одну из этих фурри и перенес во вкладку img2img. Настройки выставил следующие настройки:
На скрине ниже обратите внимание, что параметр Weight выставлен на 1.4 — так мы повышаем влияние нашего белого фигуличного квадрата, отчего позы будут максимально похожими на оригинал. Если поставить меньше, то позы меняются больше.
Все, смело выкручивайте Batch size до 10 и расширяйте свой дата-сет! Так вы можете делать с любой фотографией, полученной в первой части во вкладке txt2img.
Сравнения результатов
Тестировал на разных нелепых квадратах, среди которых:
Также пробовал генерировать похожих персонажей на шуме через вкладку img2img, но получалась фигня. Вроде и неплохо, но часто лисицы были вообще не похожи + на лице не было шерсти, а она была нужна! Это одно из главных условий, достичь которое удалось с помощью белого квадрата и ControlNet.
Кстати, по методу с белым кубом получается даже создавать картинки в 1024 на 1024 пикселей. Удачных вариантов примерно 20 из 100, но это уже хоть что-то.
Вы можете сказать, почему не попробовал сделать позы и не сгенерить по ним через ControlNet? А я отвечу, что пробовал, и получалась также фигня без шерсти на лице + сама генерация шла очень долго, так как приходилось выставлять разрешение (2048 на 1024).
В общем, можете дискутировать в комментах, глядеть исходники, благодарить, если кому-то помог.
Congratulations, вы справились!
Теперь кто-то умеет генерировать одного персонажа в разных позах и ракурсах с помощью лучшего фреймворка для Stable Diffusion на сегодняшний день. Буду рад обратной связи и вашим комментариям, а также приглашаю в свой телеграм чат, где отвечу на все вопросы касаемо SD.
Буду рад видеть вас в телеграм-канале, где я собираю лучшие гайды по Stable Diffusion. А если не найду, то пишу сам.
#furry #stablediffusion #ai #art #гайд #guide #automatic1111.