Все что нужно знать про модели stable diffusion. Часть 3
Будем использовать это расширение
Потому что оно простое и может сделать все что нужно
В двух словах про другие расширения
Checkpoint merger (который по умолчанию установлен) - чуть сложнее и нет возможности работать с ema/no-ema
Model toolkit - отличное расширение, чтобы глянуть что-там в модели. Конвертация fp16/fp32, есть возможность вытянуть отдельные части модели и нужную пачку весов (ema/no-ema), но нужно сильно больше телодвижений и интерфейс опять не такой удобный как у model converter
Supermerger - просто смотрите на картинку (кстати, я не смог найти как вытянуть отдельные части или выбрать нужную пачку весов, если знаете напишите в комментах)
При том, что нам не нужно мержить модели, а просто получить файлик нужного формата - это все немного не то.
А теперь, как в рекламе олд спайс: посмотрите на остальные расширение и посмотрите на это, еще раз на другие и опять на это
Установка
Устанавливается точно также как и все остальные расширения.
Переходим во вкладку Extensions, раздел Available нажимаем кнопку Load from: и у нас подгрузится список расширений. Дальше в поиске пишем model converter у нас он такой один, натуральный блондин. Нажимаем серую кнопку Install и после того как он загрузит, переходим в раздел Installed и нажимаем оранжевую кнопку Apply and restart UI и после перезагрузки у нас появиться вкладка model converter
Как превратить брюки в элегантные шорты?
Если вы читали вторую часть, то по параметрам вам все должно быть понятно:
Model - модель, с которой будем работать (работает и с ckpt, и с safetensors)
Custom name - название сконвертированной модели (если ничего не указать, возьмет оригинальное название и добавит приписки с выбранными параметрами, можно глянуть чуть ниже)
Precision - точность чисел в нашей модели
Pruning methods - какую пачку весов будем оставлять (disabled - оставит без изменений)
Checkpoint format - расширение, которое хотим получить
Show extra options - покажет дополнительные поля в которых мы сможем выбрать что делать с конкретными частями модели, пропускаем (если вам это нужно, то и без меня знаете)
Fix clip - чинит текстовую часть нашей модели, соответственно есть смысл включать если она сломана, не трогаем (кстати model toolkit может написать если сломан clip)
Работает все просто: выбираем модель, нужные параметры, нажимаем на оранжевую кнопку "Run" и ждем. Делает достаточно быстро, но это еще зависит от выбранных параметров. После того как новая модель будет готова, в правом столбце появиться сообщение с расположением файла (сохраняет туда, где лежат остальные модели, у меня указана нестандартная папка)
Важный момент
Если мы что-то делаем с моделью, то она должна быть полной. То есть если мы хотим вытянуть из модели ema веса, то в модели они должны быть. Если мы хотим перевести модель в fp16, то она должны быть fp32 (иначе нет никакого смысла переводить fp16 в fp16 или fp16 в fp32, потому что точность мы уже потеряли). Условно говоря, модель - это тортик. И если от целого тортика (полная модель с двумя пачками весов в fp32) мы можем отрезать кусок (no-ema fp16), то из кусочка у нас не получиться воссоздать целый тортик или другую его часть
Зачастую авторы выгружают уже обрубленные модели, в которых нет двух пачек весов или уже в fp16. Поэтому для демонстрации буду использовать sd1.5
Вес
Показатель, по которому можно примерно судить что там в модели:
Две пачки весов в fp32 ~7гб
Две пачки весов, одна из которых fp16 ~5.6гб
Две пачки в fp16 или одна пачка весов fp32 ~3.6-4гб
Одна пачка весов в fp16 ~2гб
С тем, как показывают вес есть отдельный прикол, но тут не углубляясь.
Возьмем например Protogen 3.4 на civitai и huggingface
Смотрим. Ага, пять с лишним гигов, значит у нас тут две пачки, одна из которых fp16, а другая fp32, ок. Так, стоп. Почему на civitai она весит 5.57, а на huggingface 5.98 (выделены красным)? Получается они разные? Начал качать, а он показывает 5.6. Скачал, и у обоих размер пишет 5 843 978, а в свойствах 5.57. Так и хочется сказать
Они просто по разному считают:
хром - показывает нормальный размер и округляет при скачивании
huggingface - показывает размер в байтах, оставляет только первые 3 цифры, а остальное отбрасывает и пишет гб (посмотрите размер на huggingface и в свойствах значение в скобках)
civitai - показывает размер файла нормально
проводник - тоже нормальный размер, только в кб (5 843 978кб/1024=5707мб; 5707Мб/1024=5.7гб)
ну а в свойствах все как надо
Поэтому помните, что одна и та же модель может на разных сайтах может весить по разному. На huggingface будет показывать вес больше чем на civitai.
На этом с моделями все, все молодцы, расходимся. Нейронки интересная и непростая штука, поэтому если хотите лучше в них разобраться, подписывайтесь на канал, там рассказываю как работать с stable diffusion