Перекрашиваем Gif анимацию в Stable Diffusion с использованием ControlNet
Друзья, я понял, что один не смогу протестить все возможные варианты для простой и быстрой генерации классной гифки на основе собственного персонажа.
Поэтому давайте использовать наше секретное супер-оружие, наш коллективный нейро-разум. Сейчас я вас научу. И каждый попробует свои варианты и вместе мы в разы быстрее найдем оптимальные настройки и характеристики, так развивается и работает опенсорс мы тоже можем применять этот подход. Подробности внутри.
Что нам понадобится:
1. Раскадровка гифки, одна штука. Как сделать, взять готовую гифку с интернетов, и раскадрировать любым доступным способом, я это делаю в Adobe Primer, можно сделать и онлайн гайд например вот https://comp-doma.ru/kak-razbit-video-na-kadry-online.html
2. Актуальный Automatic 1111 с расширением ControlNet и моделями к нему, или еще есть облегченная версия моделей, тоже должна работать так же. Как работает ControlNet и как установить в этом видео. Можно и в коллабе.
Погнали
Что нам надо от гифки, чтобы её фон не сильно менялся, чтобы сами движения персонажа не пересекались между собой, т.е. руки и ноги, это пока работает плохо. Я возьму вот такую гифку, разрешение у неё не очень, но нам это не принципиально мы будем генерировать в большем разрешении.
Теперь я раскадрирую гифку в Adobe Primer, но вам подойдет и способ по проще из пункта 1.
У меня получилось вот так, что-то подобное должно быть и у вас. Важно чтобы кадры были не смазанными и хорошо читались.
Открываем txt2img и задаем промпт, генерируем пока у нас не появится персонаж который сможет занять место на гифке.
Отправляем все кнопкой в img2img, чтобы перенести и настройки генерации.
Я попробую сделать гифку на основе модели openpose, вы попробуйте в разных моделях и с разными настройками. Про разные модели рассказываю в видео. И не забывайте про галку Enable, без неё расширение не включено.
В img2img выставляем ваши любимые настройки, тут у нас задача поставить такой Denoising strength и так скорректировать промпт, чтобы персонаж нормально рисовался на кадре из гифки, пробуем несколько разных кадров, смотрим чтобы все ложилось. Я зафиксирую сид. Но это не обязательно и не то чтоб сильно помогает.
И теперь важный момент без которого ничего не будет работать, разработчик ControlNet явно хороший парень, но у него как и у многих не отбит педрильник (да я взял эту фразу сами знаете у кого). У меня пол дня ушло чтобы понять почему не работает пакетная генерация, оказалось все очень просто, этот отличный парень в пакетном режиме не сделал сохранение для карты которую генерирует для каждого изображения ControlNet и автоматик просто крашился не зная что делать с лишней картинкой. Исправлять это по законам жанра решили костылями. Идем в Settings, находим в списке слева ControlNet и ставим галку Do not append detectmap to output, теперь созданные для каждого изображения карты не будут сохраняться и проблема как бы решилась сама собой 🙄
Возвращаемся в img2img, где у нас все готово и открываем вкладку Batch, тут мы указываем папку в которой лежит раскадровка от гифки и выходную папку куда сохранится результат. При желании можно еще сгенерировать маску, например через Depth и указать путь к маскам, но это сами уже попробуйте и расскажите что получилось.
Можем генерировать.
Напоминаю, что все скрипты доступные для img2img доступны нам и в пакетном режиме, одновременно с ControlNet. Так что дальше дело ограничивается только вашей фантазией.
А у нас тем временем все готово, на выходе папка с кадрами, теперь надо собрать все обратно. Можно использовать любой видео редактор, Photoshop или вот эту онлайновую штуку, гифку ниже я сделал в ней.
Друзья, вот такой результат получился у меня.
Чего бы мне хотелось добиться в этом вопросе, это не допускать мельтешения и сильного изменения, психоделии, но если уменьшать деноизинг то ничего не остается от нашего персонажа.
Используя ControlNet мы можем ставить деноизнг даже на единицу, чего я никогда не делал при обычно img2img, и получать полное дублировании позы через любую из моделей, но от этого тоже постоянно изменяется фон и одежда.
Поэтому если кто-то найдет оптимальную комбинацию настроек, или может быть какой-то правильный способ подготовки исходника, чтобы можно было быстро добиться более хороших результатов - дайте мне знать. Возможно собака зарыта в настройках ControlNet, весов или в одной из моделей.
Думаю вместе мы быстрее найдем нужный пайплайн. Жду ваши работы в комментах и в чатике.
UPD: Скрипт gif2gif позволяет значительно ускорить процесс убирая из пайплайна нарезку гифок на кадры и сборку их обратно. Все предельно просто устанавливаем как и все рассширения через Extensions, делаем Applay UI и в скриптах в img2img появляется новый скрипт.
Там все просто загружаете свою гифку, можно добавить интерполяцию или ускорить/замедлить, сразу в интерфейсе видите результат, скрипт полностью совместим с ControlNet.
---
Вот мой список полезных ресурсов:
- Арт-нейросети от Nerual Dreming основной канал по нейросетям - подпишитесь, чтобы быть в курсе всего!
- Nerual Dreming на YouTube тут проводятся стримы и выкладываются гайды - подпишитесь!
- Nerual Dreming на Boosty - записи всех стримов, ххх сеты, ассеты и секретные гайды только для подписчиков, и доступ в чат для самых продвинутых.
- ДЕНЬГИ - чат, где мы учимся зарабатывать на наших нейро-талантах вместе с настоящими профи.
- ЧЕЛЛЕНДЖИ - группа с новыми нейро-челенджами каждый день - участвуй!
- СКЛАД - все, что нужно для вашей нейросети: лоры, модели, эмбединги - осторожно, там нет цензуры.
- АДМИНСКАЯ - группа для администраторов нейро-каналов, добавьте свой канал в био, прежде чем подавать заявку.
- Чат нейро-операторов - общайтесь, задавайте вопросы, делитесь опытом с более чем 500 нейро-операторами.