TLDR: Че тут происходит вообще? Я тут делюсь своим опытом по работе с нейронками. Если тебе эта тема интересна, но ты только начал вникать загляни ко мне в профиль или в конец статьи, там есть полезные ссылки. Сейчас это может быть слишком сложным для тебя.
Прежде чем начать, кратко для новоприбывших, как установить ControlNet. В automatic1111 идем в Extension-Available жмем Load from. Ищем ControlNet, жмем Install. Скачиваем модели. Сегодня нам понадобится openpose. И кидаем по пути ваша_папка_с_автоматиком\extensions\sd-webui-controlnet\models. Всё. Вы готовы. Можем начинать.
Сегодня продолжим тему, начатую в моем прошлом гайде, будем выжимать из препроцессора openpose все что можно. В том числе используя сторонние расширения.
Давайте сразу их установим. Первое можно найти там же где и устанавливали ControlNet. Называется posex.
Для установки второго(на момент написания статьи), перейдите на вкладку Install from URL.
Так же нужно поднастроить контролнет. Зайдите в Settings - СontrolNet и в MultiControlNet передвиньте ползунок на 3. Так мы сможем использовать сразу несколько моделей.
Сохраняем!!! Apply settings. Перезапускаем полностью автоматик и обновляем страницу.
Если помните то в прошлом гайде я советовал сохранять ужачные позы. Совет все еще хороший, но что делать что нужной вам позы у вас просто нет. Все просто. Создать ее)
Идем в txt2img. Видим внизу новое раскрывающееся меню. Posex заглянем туда.
Send this image to ControlNet. - будет пере отправлять то что видим в окне с позой в контрол нет. Это нам и нужно.
Target ControlNet number - в какую вкладку контролнета отправить позу. Напомню что у нас их теперь 3.
Чуть ниже кнопки сброса: Всего, камеры, позы.
Управление простое и можно разобраться самому, но есть нюансы, поэтому распишу:
С зажатым ПКМ перемещаем холст. Может показаться что позу по экрану, но если добавите еще одну то увидите что они двигаются вместе. (нюанс 1, если в браузере есть управление жестами мыши отключите, иначе будет работать криво)
Колесиком приближаем и отдаляем. Для более плавного отдаления\приближения зажмите колесико мышки и двигайте ей.
Чтобы двигать кости, наводить на одну из них, как появится рамка, двигайте.
Нюанс 2. У нас есть две фигуры. Как подвинуть одну из них? Наведите на любую кость, зажмите ПКМ, двигайте. Это было для меня не очевидным, пришлось читать гитхаб. А вот Fixed Roll автор решил не объяснять. Экспериментами выяснить что делает не вышло. Add - добавляем нового скелета. Remove - удаляем. Чтобы удалить, наведите на кость, нажмите ЛКМ\ПКМ, а затем Remove. Разрешение итоговой картинки, чем выше тем чтонее. Может пригодиться если собираетесь делать в дали. Для близких ракурсов и 512 ок. Далее кнопки установки бэкграунда, просто для примерки, он не влияет на генерацию. Но вы можете использовать примерочный бэкграунд позже в контрол нете чтобы он как раз влиял. А так же как референс для позы. Осталось выставить:
Внизу кнопки сохранения поз, там нюансов нет, так что давайте уже что-нибудь сгенерируем!!
Итак, помните про разрешение? Оно нм нужно еще и для изменения композиции. Я ставлю 960 на 512. в настройках генерации либо такое же, либо с таким же соотношением сторон.
Пишу промпт. Беру стандартную позу, выставляю разрешение, раздвигаю по сторонам чтобы картинка получилась интересней, ведь двух девушек вместе мы и без этого можем сгенерировать, а вот врозь уже сложнее(было). Активирую ControlNet, препроцессор None(вы же помните из прошлого урока почему None? Потому что у нас уже есть поза, а препроцессор ее создает. Его работа уже сделана нами) Model - openpose.
на самом деле не сразу получаем, мелкие лица нейросеть рисует не так хорошо, поэтому прогнал через СД апскейл, а потом уменьшил чтобы влезла сюда. А вот что хорошо получается, так портрет. Бывало что не сразу удается добиться нужного приближения? Эти дни в прошлом)
Так же не забываете что промпт должен соответствовать позе. Поставив в т-позуб но написав dansing можете получить искажения.
Легко решаем вопрос количества людей:
Теперь большая картинка без кучи клонов делается в разы проще:
Я тут считерил. Поставил в т-позу, но, во-первых, она далеко, во вторых в промпте running, а в третьих Guidanse End поставил на 0.75 (что это, в прошлой статье).
Повернуть голову в нужную сторону:
Тут признаю честно, в Posex у меня повернуть голову не вышло, как я говорил у меня проблемы с пространственным мышлением) Так что считерил, взял из блендера.
Ну в общем понятно. Туда же и наклон головы, повороты туловища и тд и тп. Это была хорошая часть, а ниже будет про руки. И она, спойлер, не так хороша как ее некоторые блогеры малюют.
Дальше идет часть которую уже тиражируют гайдеры, но делать это с одной стороны рано, а с другой знать полезно.
Руки:
Выставляем позу как нравится и скачиваем нажав под ней Download. Идем во кладку сверху, которая называется Depth Library. Она появилась после установки последнего расширения.
Разрешение ну или соотношение сторон ставим такое же, как и на нашей позе. Надеюсь понятно что за что отвечает. Чтобы превратить левую рук в правую и наоборот, просто берем за край и тянем, это отразит изображение. По гифке видно, что у меня проблемы с пространственным мышлением)) При открытой ладони большие пальцы смотрят в голову)
Как выставили наши руки, вы можете нажать Send to ControlNet, но делать этого не рекомендую потому что отправит во вкладку 0. Лучше нажать сохранить PNG и загрузить его во вторую вкладку вручную. В итогах статьи напишу почему. Далее в Posex, так же скачиваем нашу картинку и помещаем ее на нулевую вкладку. Posex пока не нужен, выключаем и сворачиваем.
Кстати если у вас проблема с нехваткой видеопамяти поставьте в контролнете галочки на чекбоксах Low VRAM.
В итоге у нас на кладке 0. Должна быть поза. Препроцессор None. Модель - openpose. На вкладке 1 руки. Препроцессор None. Модель depth.
И получаем, вот такой замечательный результат.
Что? Не слишком замечательный?)) Это то что вам не покажут в других гайдах) Обычно в конце гайдов все круто и красиво?
Не во всех. Некоторые просто будто не замечают что вышло фигово. Это те которым надоело ролить в поисках нормального результата.
Дело даже не в ужасных пропорциях всего. Да руку я сделал слишком мелкой. Посмотрите на нашего главного героя, руку. Она так же запуталась в пальцах, хотя у нас относительно крупный пример, с глубиной и все как надо. Это не значит что все что я вам рассказывал нерабочая фигня. Это значит что результат все еще не гарантирован. Если еще увидите гайды по этому расширению обратите внимание что получается, на самом деле полная херня, либо берется простой макет как у меня ниже.
Вот это кто-то даже поставил себе на заставку в ютубе. Больших пальцев нет плюс слипшиеся и мини пальцы.
Так что к сожалению мы все еще живем не в идеальном мире. И чем более небрежно вы делаете каждый этап тем хуже может быть результат. И пока модель все еще не может сгенерировать абсолютно все что ей подсунешь.
(да, я просто приделал руки к Т-позе, писать гайды выматывает )
Что можно сделать, чтобы избежать первого примера и иметь хотя бы второй?
- Самое главное все еще не получится ставить перед сеткой сложные задачи. Перекрещивания, переплетения, те вещи где сложнее уловить края и те вещи которые при обучении главной модели были слишком мелкими по отношению к остальному изображению все еще могут получаться плохо. Все эти инструменты подталкивают диффузию сделать именно лучше, но гарантии нет.
- Следите за разрешением. Чем мельче будет объект тем выше должно быть его разрешение.
Разница между 768 и 512. На 512 мизинец вообще поломало:
- Идите от большего к меньшему. Я придерживаюсь этого когда, пишу промпт, так же работает и тут. В контролнете в нулевую вкладку закидывайте, позу, а во вторую уже руки. Ничего не работает параллельно. Тут все последовательно. Поэтому сначала тело, а потом руки к нему.
- Тоненькие анимешные пальчики могут не получиться с макета руки обычного человека
- Значит ли это что руки все еще недосягаемы? Нет. Если у вас стоит задача сделать. Сделать это можно, просто это потребует больше усилий чем подставить их через расширение. Возможно позже выпущу гайд как сделать хорошо. Коротко, вам понадобится редактор изображений и инпейнт.
И если вы думаете что это всё. Нет не все =)
Но статья и так уже слишком длинная и я уперся в лимит пикабу на кол-во медиа. Так что в другой раз. Подпишитесь чтобы не пропустить. (сюда выкладываю далеко не все, весь контент в тг, ссылка ниже)
Поделиться результатом или задать вопрос, а так же пообщаться с единомышленниками вы можете в нашем нейробратском комьюнити.
Больше гайдов на моем канале, подписывайтесь чтобы не пропустить:
На моем бусти вы сможете найти датасеты для обучения, доп материалы к гайдам и многое другое. Или просто финансово отблагодарить если мои материалы вам как-то помогли.