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

Будем считать, что вы уже установили и настроили Automatic1111's Stable Diffusion web-gui, а также скачали расширение для ControlNet'a и модели для него. Нам нужно будет лишь controlNet Inpaint и controlNet Lineart.
В интернете уже есть гайд по установке. И не один. Да хоть на том же YouTube.
Будем учиться редактировать на примере вот этой картинки:
Автор - Chaesu
Первым делом открываем фотошоп. Да, прежде чем загружать изображение в SD, его нужно подготовить. Проблема тут такая: SD 1.5 модели не могут нормально работать с изображениями больше 800 пикселей. Поэтому, выделяем в фотошопе вот такую область размером 600x900:
,нейронные сети,гайд,Stable diffusion,раздетые нейросеткой
Не снимайте выделение сразу, оно ещё пригодится
Выделение есть, теперь Ctrl+C и вставляем скопированный кусок во вкладку txt2img в окошко ControlNet'а (в первые три, то есть вставляем три раза):
Вы ведь не забыли увеличить количество юнитов контролнета в настройках?
Теперь настраиваем сами юниты контролнета:
Unit 0:
Первый юнит будет отвечать за перенос стиля
Unit 1:
Второй отвечает за редактирование с сохранением контекста
Unit 2:
Ну и третий юнит для контроля генерации
После этого нажимайте на кнопку предпросмотра:
,нейронные сети,гайд,Stable diffusion,раздетые нейросеткой
И скачивайте получившийся "негатив"
Можно поиграться с другими препроцессорами, но lineart_realistic обычно выдаёт лучший результат
Смело открываем его в фотошопе (в новой вкладке, старую пока не трогаем) и начинаем редактировать. Надо лишь убрать всё лишнее и обозначить контур того, что хотим получить. Вот как-то так:
,нейронные сети,гайд,Stable diffusion,раздетые нейросеткой
Контролирующий лайн готов. Теперь очищаем ControlNet Lineart и вставляем наш "линейный рисунок". Так как на вход теперь на вход контролнету сам лайн, то нам не нужен препроцессор - ставим его на none.
Это всё ещё Unit 2
Осталось только нарисовать маску inpaint'а. Переходим в ControlNet Inpaint (Unit 1) и прямо тут в веб-интерфейсе закрашиваем те части, которые хотим перерисовать:
,нейронные сети,гайд,Stable diffusion,раздетые нейросеткой
Про тень от одежды не забудьте
Осталось лишь написать промпт (и негативный промпт), выбрать параметры генерации (размер 600x900 не забывайте) и нажимать Generate до тех пор, пока не увидите приемлемый результат.
Например:
,нейронные сети,гайд,Stable diffusion,раздетые нейросеткой
Главное что стиль далеко не уехал
Это изображение неплохо бы отправить в img2img inpaint, чтобы поправить мелкие недоработки, но сейчас просто копируем его в буфер, возвращаемся в фотошоп и вставляем в нужное место (выделение пригодилось).
,нейронные сети,гайд,Stable diffusion,раздетые нейросеткой
Сидит как влитая
Исправляется тем же образом:
,нейронные сети,гайд,Stable diffusion,раздетые нейросеткой
Приемлемо
По тому же принципу делаем остальных
Видите недоработки? Исправить их - это ваше домашнее задание
А вот параметры генерации:
Модель для генерации логично выбирать близкую по стилю. Для не слишком реалистичных рисунков Kizuki Alternative почти идеальна.
Несколько советов:
- Уменьшайте исходное изображение заранее, облегчайте нейросети работу.
- Можно обойтись из без Lineart'а, и тогда сетка додумает форму самостоятельно.
- Если какие-то части получились хорошо, а какие-то нет, то просто перенесите результат во вкладки Reference и Inpaint и работайте уже с ним.
- Если исходное изображение слишком тёмное либо светлое, то модель сама по себе может не справиться и имеет смысл подключать затемняющую или осветляющую мини-модель (лору).