реклама
разместить

Перерисовываем любой рисунок нейросетью (лонг)

Перерисовываем любой рисунок нейросетью (лонг)

Сегодня я расскажу о способе дорисовывать любые рисунки с помощью инструментов Stable Diffusion. Но прежде чем я начну, убедитесь что у вас установлена свежая версия Stable Diffusion webui от Automatic1111 + расширение ControlNet 1.1 со всеми нужными моделями.
Вот видео-инструкции (смотреть по порядку):

Установили? Тогда начинаем.

Часть 1. ControlNet Inpaint

Ни для кого не секрет, что в SD существует фича под названием inpaint - это, по сути, способ сгенерировать что-то поверх существующего изображения. В интерфейсе от Automatic1111 под inpaint'ом обычно подразумевают один из режимов img2img. Это хоть и мощный инструмент, но, всё же, недостаточно точный и контролируемый. Тут на помощь приходит ControlNet Inpaint и исправляет главный недостаток "классического" inpaint'а - игнорирование контекста. Впрочем, достаточно теории переходим к практике.

Итак, возьмём изображение, которое мы хотим отредактировать.

И сразу же уменьшаем/увеличиваем его до нужного разрешения:
В моём случае с 1500x1500 до 640x640. По опыту скажу, что лучший результат получается при размере меньшей стороны от 512 до 768 пикселей, а большая сторона при этом желательно меньше 1024 пикселей.

Перерисовываем любой рисунок нейросетью (лонг)

Теперь открываем вкладку txt2img в web-gui, раскрываем ControlNet и переносим изображение на холст Unit 0, выбираем режим Inpaint и выставляем все нужные настройки (и включить не забудьте):

Всем видно?
Всем видно?

Теперь замазываем места, которые хотим перерисовать:

Перерисовываем любой рисунок нейросетью (лонг)

В промпт пишем то, что хотим в результате видеть. Ещё раз, пишем не то, что нужно нового добавить, а то, каким хотим видеть финальную картинку:

1girl, naked, completely nude, (best quality, masterpiece:1.2)

Негатив как обычно:

EasyNegative, badhandv5, (worst quality, low quality, normal quality:1.4)

Модель подбираем поближе к стилю рисунка (реалистичный/стилизованный). В моё случае это MeinaMix_v11-inpaint.

Параметры генерации:

Ctrl-C, Ctrl-V
Ctrl-C, Ctrl-V

Всё, можно нажимать Generate до тех пор пока не появится приемлемая картинка.

Столь хороший результат обеспечивается препроцессором inpaint_only+lama - он пытается дорисовать зону под маской с учётом "наружного контекста". Это же и обеспечивает генерацию правильного цвета.

Простой случай разобрали, переходим к чему-то посложнее:

Часть 2. Style transfer

Возьмём теперь другой рисунок попробуем повторить описанный выше процесс:

Перерисовываем любой рисунок нейросетью (лонг)

Мда, мало того, что поза поехала, так ещё и стиль оказался потерян. Одного ControlNet Inpaint тут недостаточно. Надо подключать дополнительные юниты.

Нам нужно решить 2 задачи:

  • Повторить существующий стиль рисунка
  • Сохранить силуэт

Для решения первой задачи будем использовать ControlNet reference и ControlNet T2IA - они оба позволяют копировать стиль с изображения-референса и как нельзя лучше работают в связке.

Возвращаемся к интерфейсу ControlNet'a. Копируем исходное изображение в Unit 1 и Unit 0. Настраиваем вот так:

Для reference_only модель не нужна
Для reference_only модель не нужна
Аккуратнее с выбором модели. Вы ведь не забыли её скачать?
Аккуратнее с выбором модели. Вы ведь не забыли её скачать?

А в качестве четвёртого ControlNet'a можно использовать любой, что позволяет сохранить форму: canny, depth, softedge, lineart - на ваше усмотрение и под конкретную задачу.

Softedge, например
Softedge, например

Интересный факт: никто не запрещает отредактировать выход предпроцессора в фотошопе. Что-то убрать, что-то подрисовать. Вот где могут понадобиться навыки рисования.

Ладно, всё 4 юнита активны. Нажимаем Generate и:

Неудача
Неудача

Это совсем не то, нужно!
Формы сохранены, но промпт будто проигнорирован. Что случилось? Я вам скажу что: сила ControlNet'а оказалась слишком велика. Stable Diffusion попытался во время генерации воссоздать рисунок-референс да ещё и плюс inpaint там подсунул белый цвет с фона!

Как с этим бороться? Нужно уменьшить эффект двух юнитов переноса стиля (reference и T2IA), но при этом нельзя сильно уменьшать их силу, иначе перенос стиля будет ослаблен. В общем, нужно воспользоваться настройкой Starting Control Step. Она отвечает за то, на какую долю шагов генерации придётся действие ControlNet'a.

Starting Control Step 0.5, например, означает, что первую половину шагов генерация будет опираться только на промпт, а со второй половины подключится уже наш ControlNet.

В общем, план такой: слегка понижаем Control Weight (сила) у стилевых юнитов (примерно до 0.9). После этого начинаем постепенно поднимать границу начала действия стилевых юнитов. Также имеет смысл подобным же образом немного ослабить действие Inpaint'a - позволяет в некоторых случаях исправить цвета.

После нескольких попыток (и усиление промпта) получаем вот такую задницу:

Перерисовываем любой рисунок нейросетью (лонг)

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

Часть 3. img2img

Даже после получения хорошей генерации во вкладке txt2img имеет смысл несколько отшлифовать изображение уже через img2img inpaint. Главное не забудьте подключить 2 ControlNet'a для переноса стиля. Помните да, reference и T2IA.

Некоторые пункты в виде итога:

  • Ключ ко всему - это ControlNet (inpaint_only+lama) и ControlNet (reference_only, T2IA)
  • Генерацию лучше проводить поэтапно, чтобы было на что опереться в последующие шаги
  • Также имеет смысл разделять генерацию объектов нужной формы и затем покраску их в нужные цвета.
  • Подбирайте подходящие под задачу модели и/или лоры.
  • Не забудьте про параметры Control Weight, Starting Control Step, Ending Control Step. И про Control Mode в самом низу!

P.S. Хотел бы я чтобы кто-то обстоятельно протестировал этот метод и поделился бы потом результатами. Мне кажется, как-то можно добиться ещё большей близости к стилю оригинала, ведь задача состояла именно в этом.

Небольшой бонус для тех кто дочитал:

Перерисовываем любой рисунок нейросетью (лонг)
Контент для взрослых
163163
реклама
разместить
19 комментариев

Полезный гад, спасибо :3

5

Якорный контент.

1

Комментарий недоступен

4

Т.е. теперь любым бабам можно члены дорисовать? Наконец-то!

2

Буквально на прошлой неделе этим же с другом занимались

Раскрывать всегда
реклама
разместить
Assassin's Creed Shadows побила рекорд игр франшизы по максимальному онлайну в Steam

В экшен-RPG одновременно находилось почти 65 тысяч человек.

Assassin's Creed Shadows побила рекорд игр франшизы по максимальному онлайну в Steam
160160
9898
55
44
44
22
22
22
11
11
11
11
Лицо хейтеров серии представили?
Исполнил мечту детства. Побывал на концерте Славы КПСС
Спасибо за детство, легенда
582582
188188
7272
88
66
55
44
33
22
11
11
Лучше дочь фанатка BG 3, чем сын фанат Славы КПСС
Как же скучно я живу!
104104
1515
99
77
22
22
11
Что в голове у людей, которые туда лезут?
Ремейк «Белоснежки» собрал по миру 87 миллионов долларов в дебютный уикенд — это ниже ожиданий

Но у фильма ещё есть шанс выйти в прибыль.

Ремейк «Белоснежки» собрал по миру 87 миллионов долларов в дебютный уикенд — это ниже ожиданий
1616
55
44
11
11
Я бы посмотрел 18+ версию с Галь Гадот и семью гномами.
В сети появилось полное прохождение PS3-прототипа Until Dawn с использованием контроллера PS Move

И от первого лица.

В сети появилось полное прохождение PS3-прототипа Until Dawn с использованием контроллера PS Move
7878
4545
77
44
33
22
11
11
Until Dawn и The Quarry единственные хорошие игры от Supermassive с горячими девчулями. Дальше скатились.
«Субъект на свободе» — отрывок из сериала «Чужой: Земля» от шоураннера «Фарго» и «Легиона»

Научно-фантастический триллер стартует летом.

157157
2828
1515
55
33
33
22
11
Лого Диснея добавляет абсурдности
реклама
разместить
Японская реклама «World of Tanks»

Ахахаххапха, как же это выглядит угарно. Вот это да, дуло

4444
2222
1212
88
55
44
Так реалистичнее было бы, если бы рисовали мужики лет 40, а не молодые девушки. Это ведь реклама танков.
Почему и рост не поможет и это хорошо
Почему и рост не поможет и это хорошо

Смотря на этот мем, высокие парни, наверное, радуются, что вот же оно! Хоть в чем-то в жизни им несомненно повезло просто так, хоть одна карта из раздачи колоды судьбы им выпала козырной. Но на деле не все так просто. Да, рост несомненно важен, но на одном росте выехать невозможно и на самом деле важно и все остальное. Вот у меня рост 186, а лицо..…

2222
99
99
22
11
Проблема инцелов в том, что они ищут размножения, а не здоровые отношения. Поэтому заслуженно до конца жизни будут страдать. Внешность или капитал здесь вообще роли не играют, если ищешь именно партнера, а не кусок мяса для спаривания.
[]