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

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

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


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

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

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

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

Смешивание моделей. Создаём свою inpaint модель, на основе вашей любимой модели Обучение, Нейронные сети, Stable Diffusion, Арты нейросетей, Цифровой рисунок, Digital, Видео, Без звука, Длиннопост

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

Что мы сделали? В целом, все можно понять по формуле 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 - это новая настройка для стандартного интерфейса и очень глубокая нора. Сюда пока не лезем. Тут нужно рассказывать про то что такое модели про слои и веса.

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

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

Смешивание моделей. Создаём свою inpaint модель, на основе вашей любимой модели Обучение, Нейронные сети, Stable Diffusion, Арты нейросетей, Цифровой рисунок, Digital, Видео, Без звука, Длиннопост

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

Смешивание моделей. Создаём свою inpaint модель, на основе вашей любимой модели Обучение, Нейронные сети, Stable Diffusion, Арты нейросетей, Цифровой рисунок, Digital, Видео, Без звука, Длиннопост

Просто 1.5-inpaint:

Смешивание моделей. Создаём свою inpaint модель, на основе вашей любимой модели Обучение, Нейронные сети, Stable Diffusion, Арты нейросетей, Цифровой рисунок, Digital, Видео, Без звука, Длиннопост

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

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

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

Смешивание моделей. Создаём свою inpaint модель, на основе вашей любимой модели Обучение, Нейронные сети, Stable Diffusion, Арты нейросетей, Цифровой рисунок, Digital, Видео, Без звука, Длиннопост

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

Смешивание моделей. Создаём свою inpaint модель, на основе вашей любимой модели Обучение, Нейронные сети, Stable Diffusion, Арты нейросетей, Цифровой рисунок, Digital, Видео, Без звука, Длиннопост

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

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

Смешивание моделей. Создаём свою inpaint модель, на основе вашей любимой модели Обучение, Нейронные сети, Stable Diffusion, Арты нейросетей, Цифровой рисунок, Digital, Видео, Без звука, Длиннопост

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

Смешивание моделей. Создаём свою inpaint модель, на основе вашей любимой модели Обучение, Нейронные сети, Stable Diffusion, Арты нейросетей, Цифровой рисунок, Digital, Видео, Без звука, Длиннопост

Просто рева:

Смешивание моделей. Создаём свою inpaint модель, на основе вашей любимой модели Обучение, Нейронные сети, Stable Diffusion, Арты нейросетей, Цифровой рисунок, Digital, Видео, Без звука, Длиннопост

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

Смешивание моделей. Создаём свою inpaint модель, на основе вашей любимой модели Обучение, Нейронные сети, Stable Diffusion, Арты нейросетей, Цифровой рисунок, Digital, Видео, Без звука, Длиннопост

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

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

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

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

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

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

Stable Diffusion

2.6K пост2.1K подписчиков

Добавить пост

Правила сообщества

Придерживайтесь стандартных правил Пикабу.