Как отредактировать любой рисунок с помощью нейросети Stable Diffusion. Подробный гайд

Будем считать, что вы уже установили и настроили Automatic1111's Stable Diffusion web-gui, а также скачали расширение для ControlNet'a и модели для него. Нам нужно будет лишь controlNet Inpaint и controlNet Lineart.

В интернете уже есть гайд по установке. И не один. Да хоть на том же YouTube.

Будем учиться редактировать на примере вот этой картинки

Автор - Chaesu
Автор - Chaesu

Первым делом открываем фотошоп. Да, прежде чем загружать изображение в SD, его нужно подготовить. Проблема тут такая: SD 1.5 модели не могут нормально работать с изображениями больше 800 пикселей. Поэтому, выделяем в фотошопе вот такую область размером 600x900:

Не снимайте выделение сразу, оно ещё пригодится
Не снимайте выделение сразу, оно ещё пригодится

Выделение есть, теперь Ctrl+C и вставляем скопированный кусок во вкладку txt2img в окошко ControlNet'а (в первые три, то есть вставляем три раза):

Вы ведь не забыли увеличить количество юнитов контролнета в настройках?
Вы ведь не забыли увеличить количество юнитов контролнета в настройках?

Теперь настраиваем сами юниты контролнета:
Unit 0:

Первый юнит будет отвечать за перенос стиля
Первый юнит будет отвечать за перенос стиля

Unit 1:

Второй отвечает за редактирование с сохранением контекста
Второй отвечает за редактирование с сохранением контекста

Unit 2:

Ну и третий юнит для контроля генерации
Ну и третий юнит для контроля генерации

После этого нажимайте на кнопку предпросмотра:

Бам!
Бам!

И скачивайте получившийся "негатив"

Можно поиграться с другими препроцессорами, но lineart_realistic обычно выдаёт лучший результат
Можно поиграться с другими препроцессорами, но lineart_realistic обычно выдаёт лучший результат

Смело открываем его в фотошопе (в новой вкладке, старую пока не трогаем) и начинаем редактировать. Надо лишь убрать всё лишнее и обозначить контур того, что хотим получить. Вот как-то так:

Контролирующий лайн готов. Теперь очищаем ControlNet Lineart и вставляем наш "линейный рисунок". Так как на вход теперь на вход контролнету сам лайн, то нам не нужен препроцессор - ставим его на none.

Это всё ещё Unit 2
Это всё ещё Unit 2

Осталось только нарисовать маску inpaint'а. Переходим в ControlNet Inpaint (Unit 1) и прямо тут в веб-интерфейсе закрашиваем те части, которые хотим перерисовать:

Про тень от одежды не забудьте
Про тень от одежды не забудьте

Осталось лишь написать промпт (и негативный промпт), выбрать параметры генерации (размер 600x900 не забывайте) и нажимать Generate до тех пор, пока не увидите приемлемый результат.
Например:

Главное что стиль далеко не уехал
Главное что стиль далеко не уехал

Это изображение неплохо бы отправить в img2img inpaint, чтобы поправить мелкие недоработки, но сейчас просто копируем его в буфер, возвращаемся в фотошоп и вставляем в нужное место (выделение пригодилось).

Ну как влитая
Ну как влитая

Исправляется тем же образом:

Приемлемо
Приемлемо

По тому же принципу делаем остальных

Как отредактировать любой рисунок с помощью нейросети Stable Diffusion. Подробный гайд

А вот параметры генерации.

(best quality, masterpiece:1.2), 1girl, short hair, (white bikini:1.1), standing, cowboy shot, white background, contrapposto,
Negative prompt: (worst quality, low quality, normal quality:1.3)
Steps: 28, Sampler: DPM++ 2M SDE Karras, CFG scale: 6, Seed: 2598121264, Size: 600x900, Model hash: 3867bda67e, Model: kizukiAlternative_v10, VAE hash: 2125bad8d3, VAE: kl-f8-anime2.ckpt, Clip skip: 2,

ControlNet 0: "Module: reference_only, Model: None, Weight: 0.95, Resize Mode: Crop and Resize, Low Vram: False, Threshold A: 0.5, Guidance Start: 0.22, Guidance End: 1, Pixel Perfect: False, Control Mode: ControlNet is more important, Hr Option: Both, Save Detected Map: True",

ControlNet 1: "Module: inpaint_only+lama, Model: controlnet11Models_inpaint [be8bc0ed], Weight: 1, Resize Mode: Crop and Resize, Low Vram: False, Guidance Start: 0, Guidance End: 1, Pixel Perfect: False, Control Mode: My prompt is more important, Hr Option: Both, Save Detected Map: True",

ControlNet 2: "Module: none, Model: controlnet11Models_lineart [5c23b17d], Weight: 0.8, Resize Mode: Crop and Resize, Low Vram: False, Guidance Start: 0, Guidance End: 0.8, Pixel Perfect: False, Control Mode: Balanced, Hr Option: Both, Save Detected Map: True", Version: v1.7.0

Модель для генерации логично выбирать близкую по стилю. Для не слишком реалистичных рисунков Kizuki Alternative почти идеальна.

Несколько советов:

  • Уменьшайте исходное изображение заранее, облегчайте нейросети работу.
  • Можно обойтись из без Lineart'а, и тогда сетка додумает форму самостоятельно.
  • Если какие-то части получились хорошо, а какие-то нет, то просто перенесите результат во вкладки Reference и Inpaint и работайте уже с ним.
  • Если исходное изображение слишком тёмное либо светлое, то модель сама по себе может не справиться и имеет смысл подключать затемняющую или осветляющую мини-модель (лору).
7070
24 комментария

Надо, чтобы было так, программа, в ней открываешь свой рисунок, нажимаешь кнопку "Сделать пиздато", сохраняешь и радуешься. А сейчас что-то какая-то ебля с танцами.

12

Блин, находятся же чудики, которые всё ещё работают в А1111...

Нет бы как нормальные люди генерить арты в ComfyUI, и вместо лонга на DTF, просто скинуть workflow.json, что бы любой желающий за 5 секунд загрузил этот файл и сразу смог повторить всё в точности без лишних слов и объяснений.

5

И тут ебаные ноды, хватит

4

А ControlNet reference_only в Comfy работает? Помню я поэтому и не стал переходить.

1

Это был долбанный снобизм.

1

Открыл для себя Comftui и возомнил крутым?)

1

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