Найти в Дзене
Пикабу

Смешивание моделей. Создаём свою inpaint модель, на основе вашей любимой модели

TLDR: Че тут происходит вообще? Я тут делюсь своим опытом по работе с нейронками. Если тебе эта тема интересна, но ты только начал вникать загляни ко мне в профиль или в конец статьи, там есть полезные ссылки. Сейчас это может быть слишком сложным для тебя.

Хотели когда-нибудь создать свою модель выложить на civitai и грести лайки? Что же после этой статьи вы станете к этому на один шаг ближе.

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

Заходим в наш automatic1111, а затем в Checkpoint Merge.

Нам понадобятся модель для которой вы хотите сделать инпейнт версию, а так же ее родитель. У большинства он сейчас 1.5. Узнать родителя модели можно на странице где вы ее скачивали. В основном это 1.5. Ну и инпейнт версия этого родителя. Скачать 1.5 (7.7Gb). Скачать 1.5-inpaint (4.3Gb).

Выставляем все как на скрине и жмем Merge:

Модель будет сохранена в папку где находятся ваши основные модели.

Что мы сделали? В целом, все можно понять по формуле A + (B - C) * M. Мы вычли из целевой модели то что имеет отношение к обычной 1.5, получили только те веса которые делают ее такой какая она есть, а затем влили это всё в 1.5-inpaint. Получили инпейнт версию нашей модели.

Что по настройкам:

ABC - Наши модели Custom name - имя для вашей новой модели Multiplyter - коэффициент смешивания. Чем ближе к нулю тем меньше воздействия на модель A. чем ближе к 1 тем больше =)

Interpolation Method - Метод воздействия. No interpolation - Выключить. Нужна тогда когда вы просто хотите изменить формат модели например или добавить в нее VAE. Нужна только одна модель. Weight Sum - суммировать веса модели и получить либо полную фигню, либо что-то интересное. Требует две модели. A * (1 - M) + B * M. Add difference - то что мы использовали выше. Требует выбора трех моделей потому что к первой добавляется разница между третьей и второй. A + (B - C) * M.

safe as float16 - Теряем в точности вычислений, но не сильно. Уменьшаем вес модели, иногда довольно сильно (если до этого она была float32).

Copy config from - Это для SD2. и выше. Они имеют с собой файл настроек, тут мы указываем как эти настройки следует копировать. Я ни разу не смешивал версии выше 1.5. Они мне не интересны.

Save in VAE - Можете добавить в модель свою VAE.

Checkpoint format - Некоторые веб интерфейсы не поддерживают safetensors пожалуй это единственная причина почему можно было бы выбрать ckpt в остальных выбирайте safetensors так как он безопасней, в том плане что, в ckpt можно поместить работающий вирус, а в safetensors нет.

Discard weights with matching name - Это новая настройка для стандартного интерфейса и очень глубокая нора. Сюда пока не лезем. Тут нужно рассказывать про то что такое модели про слои и веса.

Вернемся к нашей свежесозданной модели.

Эта версия должна справляться с задачами инпейнтинга намного лучше. Давайте проверим. Идем в инпейнт и не меняя никаких настроек.. Свежесозданная инпейнт версия нашей модели:

.
.

Обычная версия нашей модели:

-3

Просто 1.5-inpaint:

-4

Наверное стоит пояснить для новичков, что получить первый результат на обычной версии модели можно, подкрутив настройки, но как видим инпейнт менее к ним привередлив. Что больше нравится судить вам. Как всегда призываю к экспериментам. По моему опыту, с инпейнт версиями моделей мне работать проще. Жаль только забываю на них переключаться..

Теперь давайте создадим свою модель на основе уже имеющихся. Процесс схож.

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

museV1_v1: 0.4+ (Basil_mix_fixed: 0.3+ (lofi_V1Fp16: 0.5+colorful_v13))

Тут происходит следующее: lofi_V1Fp16 + colorful_v13 с коэффициентом смешивания 0.5. Basil_mix_fixed с коэффициентом 0.3 складывается с результатом их смешивания. И итоговый результат смешивается с museV1_v1 с коэффициентом 0.4 для museV1_v1. Всё просто.

Просто, чтобы показать, давайте смешаю что-нибудь от балды (многие модели так и были созданы. Путем экспериментов):

Выбираю weight sum. Первое смешивание.

-5

Mainhentai (Нужна была по работе) сложу с полученной моделью.

-6

Хорошая идея записывать в имени файла то как вы смешиваете.

Решил все это подмешать снова в реву.

-7

Результат нашего супа из моделей (сид и промпт зафиксированы + orangemix vae):

-8

Просто рева:

-9

Ну и чтобы не говорили что ничего ж не меняется. Результат нашего мутанта + артэндэрос 0.35, который заточен на реализм. Получаем почти ревовские пропорции с более реалистичной кожей:

-10

Получилось лучше или хуже? Достаточно ли мы перенесли из оупенджорней? Не многовато ревы? По одному сиду и промпту сказать почти не возможно. Необходимо идти в xyz plot и проводить множество тестирований. Более того это нужно делать на каждом шаге и шаге после этого шага, чтобы выбирать подходящую степень смешивания. Делать это на разных промптах с использованием разных стилей которых вы возможно пытались добиться. Я же попытался вам открыть сам процесс простого смешивания. Надеюсь удалось. Более продвинутые техники постараюсь описать позже.

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

- Примеры других смешиваний: раз и два (NSFW).

А на этом пока всё. Я написал уже множество гайдов от для самых маленьких, до тренировки моделей на своих лицах. Из самых недавних про позинг в ControlNet. Часть из них можно почитать в моём профиле. Но найти все пока что можно только в телеграм канале.

Поделиться результатом или задать вопрос, а так же пообщаться с единомышленниками вы можете в нашем нейробратском комьюнити.

На моем бусти вы сможете найти датасеты для обучения, доп материалы к гайдам и многое другое. Или просто финансово отблагодарить если мои материалы вам как-то помогли.

Пост автора Neural.Academy.

Узнать, что думают пикабушники.