Смешивание моделей. Создаём свою 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 - это новая настройка для стандартного интерфейса и очень глубокая нора. Сюда пока не лезем. Тут нужно рассказывать про то что такое модели про слои и веса.
Вернемся к нашей свежесозданной модели.
Эта версия должна справляться с задачами инпейнтинга намного лучше. Давайте проверим. Идем в инпейнт и не меняя никаких настроек..Свежесозданная инпейнт версия нашей модели:
Обычная версия нашей модели:
Просто 1.5-inpaint:
Наверное стоит пояснить для новичков, что получить первый результат на обычной версии модели можно, подкрутив настройки, но как видим инпейнт менее к ним привередлив. Что больше нравится судить вам. Как всегда призываю к экспериментам. По моему опыту, с инпейнт версиями моделей мне работать проще. Жаль только забываю на них переключаться..
Теперь давайте создадим свою модель на основе уже имеющихся. Процесс схож.
Простое слияние похоже на рецепт какого-нибудь сложно сочиненного блюда где мы смешиваем какие-то ингредиенты в отдельных тарелках, а затем смешиваем эти отдельные тарелки между собой. Например, видел вот такую формулу которая должна вам дать модель очень похожую на нынче популярную 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. Первое смешивание.
Mainhentai (нужна была по работе 😳) сложу с полученной моделью
Хорошая идея записывать в имени файла то как вы смешиваете
Решил все это подмешать снова в реву.
Результат нашего супа из моделей (сид и промпт зафиксированы + orangemix vae):
Просто рева:
Ну и чтобы не говорили что ничего ж не меняется. Результат нашего мутанта + артэндэрос 0.35, который заточен на реализм. Получаем почти ревовские пропорции с более реалистичной кожей:
Получилось лучше или хуже? Достаточно ли мы перенесли из оупенджорней? Не многовато ревы? По одному сиду и промпту сказать почти не возможно. Необходимо идти в xyz plot и проводить множество тестирований. Более того это нужно делать на каждом шаге и шаге после этого шага, чтобы выбирать подходящую степень смешивания. Делать это на разных промптах с использованием разных стилей которых вы возможно пытались добиться. Я же попытался вам открыть сам процесс простого смешивания. Надеюсь удалось. Более продвинутые техники постараюсь описать позже.
- для удобства ваших экспериментов есть экстеншены которые имеют намного больше возможностей чем стандартный. Найти можно в самом автоматике.
А на этом все. Я написал уже множество других гайдов от для самых маленьких, до тренировки моделей на своих лицах. Часть из них можно почитать в моём профиле. Но найти все пока что можно только в телеграм канале.
Поделиться результатом или задать вопрос, а так же пообщаться с единомышленниками вы можете в нашем нейробратском комьюнити.
На моем бусти вы сможете найти датасеты для обучения, доп материалы к гайдам и многое другое. Или просто финансово отблагодарить если мои материалы вам как-то помогли.
П.С. Создали онлайн интенсив для новичков. Пройдет 7 и 10 апреля 2023 года. Ознакомиться с программой и принять участие можно по ссылке.