ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Давненько я не писал, как-то всё занят то работой, то исследованием всяких всячин в SD. А иногда мне просто лень, конечно же.

Буквально пару дней назад запилили ControlNet в качестве расширения для AUTOMATIC1111, это очень важная, от части прорывная штука.
Но что это такое, и почему вы внезапно должны скачать 40 гигабайт моделей, что бы полноценно её использовать?

Дисклеймер
Маняме наше всё. Но думаю, вы уже привыкли. Данное расширение работает для всех видов картинок. Ссылки на SD1.5 версии, как и краткий комментарии о том, как смержить данные модели на вашу собственную - далее в статье.
UPD: теперь можно не качать 40 гигов моделей. Возможно накладывать на лету.

Навигация

Предисловие

Если кратко, то это надстройка над вашей основной моделью, которая в той или иной мере, тем или иным путём управляет основной генерацией. Почему я назвал это img2img на стероидах? Потому что для использования любой из моделей нужна картинка, которая послужит базисом для той или иной кондиции.

На данный момент есть 8 моделей, которые контролируют генерацию:

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Canny, Depth, HED, M-LSD, Normal, OpenPose, Scribble и Seg.

Определённо плюсом использования данного расширения является возможность генерировать намного более крупные изображения без хайрез фикса(который с этим расширением не работает), что определённо позитивно влияет на качество, так как при хайрез фиксе мы используем не полный денойз.

Минусом является скорость. При стандартных +- размерах, скорость генерации, лично у меня, упала примерно в 5-6 раз. Получше на более высоких разрешениях, что, учитывая то, что хайрез фикс ненужон - более чем терпимо. Мне удавалось сделать картинки 768х1280 без особых проблем, скорее всего и 1536 возможно, но у меня сейчас не включен medvram, что бы проверить.

Дополнительной, можно сказать, фишкой, я бы назвал возможность использования техники силуэтов img2img через различные модели, всегда имея максимальный денойз, но при этом иметь отдельный регулятор для силы референса - если вы сейчас поняли о чём я, то наверняка уже бежите устанавливать, если часто пользуетесь данной техникой.

Что будет использовано при генерации далее

Интерфейс - AUTOMATIC1111
Модель - Личный микс. База: ACertainModel микшенная с AniReal через мержинг отдельных блоков с последующим блочным мержем около 36% AOM2(по большей части отдельные блоки, с низким миксом остальных)
(Что-то на сложном, вам это не надо, просто скачайте AOM2(или любую другую модель, которая вам нравится) и радуйтесь жизни(прошу вас...))
Собственно, ControlNet расширение.
Модели и препроцессоры расширения будут указаны.
Гиперсети - нет
Эмбеддинг - Рем

Промпт значения не имеет, так как основа информации заложена в картинке. Хотя при низком весе - да, имеет. Везде один и тот же, никаких деталей, кроме базы и эмбеддинга персонажа нет.

Требования

Минимум 4 гига памяти при моде low vram в расширении и --xformers.
Скорее всего гиперсетки(крупные) вы применить не особо сможете, если применяете. Автор расширения утверждает, что возможна генерация вплоть до 768x832 в таком сетапе.
На 8 гигах в моде low vram(рекомендован для 8 и ниже), с xformers спокойно генерирует примерно 1280х960 при флаге --no-half-vae, возможно выше.
Видеокарты с большим количеством памяти у меня, по причине бедности, нет.(Да и какая разница, если честно...)

Canny

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Конвертирует базу в немного странный скетч, линии которого шумные. В основном ищет границы объектов.
Препроцессор - canny.

Depth

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Карта глубины не новая штука, и они уже давно применяются для img2img, хотя я лично потестил их пару раз и забил. Но применение в txt2img это куда лучше, и вот этим уже можно пользоваться на постоянке.
Препроцессор - midas.

HED

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Похож на Canny, но мягче. Так же ищет границы.
Препроцессор - hed.

Normal

(Отказался работать сегодня, поэтому скриншот с официального гитхаба)

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Использует карту глубины для построения карты нормалей.
Препроцессор - midas.

Openpose

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Одна из самых важных моделей в ControlNet, имхо.

Пытается определить позу персонажа. Работает не всегда, возможно обязательны руки в кадре, так как это является параметром вообще генерации в коде(is_hand = false/true). Если они не найдены - ничего не будет(но это не точно).
Я хотел посмотреть, какие есть параметры для препроцессоров в коде(подсказка на гитхабе расширения), но их там не было для этой модели, жалко.
Препроцессор - openpose.

Scribble

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Создаёт изображение на основе скетча. В данном случае использован препроцессор fake_scribble, что бы сгенерировать его на основе существующей картинки.

Наверное самый полезный, если вы собираетесь использовать SD как инструмент для создания оригинального арта на основе своих собственных работ.
Препроцессор - без/fake_scribble.

На этом модели которые я сам скачал закончились, поэтому скриншоты будут с гитхаба.

M-LSD

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Данная модель ищет прямые линии. Полезна для архитектуры, может различных мехов, может быть оружия. Всего, что сделано из прямых линий.
Препроцессор - mlsd.

Seg

с.(Простите)

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion
ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Данная модель создают сегментированный референс на основе картинки. То есть делает цветовую маску оригинальной картинки, на основе которой уже генерируется новое изображение.
Препроцессор - без.

Модели обычной SD можно скачать тут:

Модели на базе Anything3 тут:

ОТДЕЛЬНЫЕ МОДУЛИ UPD(работают с любой моделью на базе SD1.х) -

Не мержте, юзайте отдельные, но инструкцию оставлю.
Так же вы можете замержить их сами через Add Difference используя такой рецепт: Целевая модель + SD1.5 Control модель - SD 1.5 с силой 1.Но учитывайте, что эти модели могут содержать ошибки, так как тренировались на базе SD1.5, а не вашей целевой модели.

Техника силуэтов и других слабых референсов | Img2Img на стероидах

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Просто берём какой-либо референс, ставим низкий вес, в данном случае 0.1, используем какую-либо из скетчевых моделей и смотрим на результат.

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

Или можно модель глубины

ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion
ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion
ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion
ControlNet | img2img на стероидах (но не совсем) | Stable Diffusion

В общем как-то так.

Далее эти картинки могут стать отличнейшим материалом для апскейла.

Я как раз тренировал пару очень узконаправленных моделей, для апскейла отдельных частей картинок, для последующего совмещения в фотошопе через маски. Если кратко - работает, результат не сильный, но позитивный. Но вообще к теме статьи это не относится. Возможно стоит сделать отдельную, но мне лень.

Конец

Расширение отличное, используйте. Но держите в уме, что скорости придёт конец(на видеокартах с 8 и ниже гигами). Но и хер бы с ней.

Если у вас есть любимые хентай арты, но вы хотели бы заменить на них персонажа, или сделать вариации - это идеальное расширение для вас(в пределах разумного) ;)

6262
63 комментария

Тут собственно в чем диссонанс получается.
Люди думают что всё, художник нинужон.
Начинают пробовать что-то генерить. Если воображение не очень и цель сделать что-то простое, то обычно прокатывает. Если воображение развитое и ты четко представляешь что хотел бы видеть, то часто проще нарисовать, если умеешь. А если не умеешь то начинается подбор параметров. Не то, не то, снова не то, опять сука не то, начинаешь дёргать ползунки процентов, менять промпты инпейнтить, все равно не то, еще и языковой барьер.
Проблема вторая. Если хочешь сделать что-то комплексное, надо уже иметь представление о перспективе, композиции и цветовом пространстве, а ты решил что "художник нинужон" и всосал и недоволен, типа сеть плохая, а дело то не в сети, она просто инструмент, это ты рак решил что уметь и знать ничего не надо. ))

7
Ответить
Автор

Ля, ну мне-то куда это разжёвывать. Я и так знаю. Никогда не говорил что художники ненужоны, зачем я против себя-то пойду. Яж из художников, только не тянок рисую, а карты. Мне ли не знать о реально комплексных проектах, где важна каждая деталька из ста названных xD

Я всегда выступал с позицией инструмента, который может заменить только шушеру. Видел недавно одного чела, который попытался выдать сгенерированную в нейронке карту за оригинальный арт, мы его с дерьмом съели, ещё и вычислили какой сайт он использовал, кек.

Другое дело, что большинству людей только базовый арт и нужен. Тут-то те, кто рисует жопой вполне себе сойдут за художников, если способны понять концепты низко-средней сложности, связанные с работой нейронки.
Думаю нам не о чем спорить, если я скажу, что как жинерик арт, то, что я показал в статье, будет считаться артом довольно высокого качества? Ну, даже если спорить, то объективная оценка в виде количества реакций на публичном арте явно будет говорить в мою пользу, ибо у меня на одном аккаунте есть сразу несколько артов, имеющих за 1000 букмарков на pixiv. Старый арт, менее хороший(но стиль мне нравится больше, но это не важно, ибо я могу натренировать почти любой).

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

Лично в моей работе есть несколько уровней художников. Те, кто производит контент, и те, кто производят ассеты для производства контента. Лично я успешно использую нейронку для второй цели(с указанием инструмента, конечно же).
(Ну, есть ещё те, кто рисует всё вручную, они божественные существа, и мы все к ним стремимся, ибо их заказы зачастую уходят за 1000$/проект)

Как-то так.

5
Ответить

Пока нейронка не может в композицию сложнее «один субъект: close up: смотреть в камеру» с одного нажатия - это все бесполезная херня

3
Ответить
Автор

Ну может, дальше что

8
Ответить

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

Ответить

Спасибо, что держишь в курсе.

Жалко, что Хуанг нас подводит и не хочет выпускать карты с нормальным объемом видеопамяти.

И лично от меня - поменьше бы специального слэнга, легче бы читалось.

2
Ответить
Автор

Сыглы. Идельно же бы смотрелось: 3060 12, 3070 16, 3080 20, 3090 24.
Разве что в 5000 линейке нас порадуют 40 гигами... Ибо пока выше 24 это уже отнимать привилегии серверной платформы.

Та ну как умею, так и пишу, что уж с меня взять

2
Ответить