Все что нужно знать про модели stable diffusion. Часть 3

Все что нужно знать про модели stable diffusion. Часть 3

В первой части мы поняли что к чему, во второй подробно разобрали разные варианты моделей и сейчас пришло время научиться конвертировать модели в разные форматы.

Будем использовать это расширение
Потому что оно простое и может сделать все что нужно

В двух словах про другие расширения

Checkpoint merger (который по умолчанию установлен) - чуть сложнее и нет возможности работать с ema/no-ema

Все что нужно знать про модели stable diffusion. Часть 3

Model toolkit - отличное расширение, чтобы глянуть что-там в модели. Конвертация fp16/fp32, есть возможность вытянуть отдельные части модели и нужную пачку весов (ema/no-ema), но нужно сильно больше телодвижений и интерфейс опять не такой удобный как у model converter

Короткая справка что там в модели
Короткая справка что там в модели
Основная часть + подробная инфа
Основная часть + подробная инфа

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

Все что нужно знать про модели stable diffusion. Часть 3

При том, что нам не нужно мержить модели, а просто получить файлик нужного формата - это все немного не то.
А теперь, как в рекламе олд спайс: посмотрите на остальные расширение и посмотрите на это, еще раз на другие и опять на это

Какая красота! Какая роскошь!
Какая красота! Какая роскошь!

Установка

Устанавливается точно также как и все остальные расширения.
Переходим во вкладку Extensions, раздел Available нажимаем кнопку Load from: и у нас подгрузится список расширений. Дальше в поиске пишем model converter у нас он такой один, натуральный блондин. Нажимаем серую кнопку Install и после того как он загрузит, переходим в раздел Installed и нажимаем оранжевую кнопку Apply and restart UI и после перезагрузки у нас появиться вкладка model converter

Все что нужно знать про модели stable diffusion. Часть 3
Все что нужно знать про модели stable diffusion. Часть 3
Все что нужно знать про модели stable diffusion. Часть 3

Как превратить брюки в элегантные шорты?

Если вы читали вторую часть, то по параметрам вам все должно быть понятно:
Model - модель, с которой будем работать (работает и с ckpt, и с safetensors)
Custom name - название сконвертированной модели (если ничего не указать, возьмет оригинальное название и добавит приписки с выбранными параметрами, можно глянуть чуть ниже)
Precision - точность чисел в нашей модели
Pruning methods - какую пачку весов будем оставлять (disabled - оставит без изменений)
Checkpoint format - расширение, которое хотим получить
Show extra options - покажет дополнительные поля в которых мы сможем выбрать что делать с конкретными частями модели, пропускаем (если вам это нужно, то и без меня знаете)
Fix clip - чинит текстовую часть нашей модели, соответственно есть смысл включать если она сломана, не трогаем (кстати model toolkit может написать если сломан clip)

Все что нужно знать про модели stable diffusion. Часть 3

Работает все просто: выбираем модель, нужные параметры, нажимаем на оранжевую кнопку "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гб

Все что нужно знать про модели stable diffusion. Часть 3

С тем, как показывают вес есть отдельный прикол, но тут не углубляясь.
Возьмем например Protogen 3.4 на civitai и huggingface

Все что нужно знать про модели stable diffusion. Часть 3

Смотрим. Ага, пять с лишним гигов, значит у нас тут две пачки, одна из которых fp16, а другая fp32, ок. Так, стоп. Почему на civitai она весит 5.57, а на huggingface 5.98 (выделены красным)? Получается они разные? Начал качать, а он показывает 5.6. Скачал, и у обоих размер пишет 5 843 978, а в свойствах 5.57. Так и хочется сказать

Все что нужно знать про модели stable diffusion. Часть 3

Они просто по разному считают:
хром - показывает нормальный размер и округляет при скачивании
huggingface - показывает размер в байтах, оставляет только первые 3 цифры, а остальное отбрасывает и пишет гб (посмотрите размер на huggingface и в свойствах значение в скобках)
civitai - показывает размер файла нормально
проводник - тоже нормальный размер, только в кб (5 843 978кб/1024=5707мб; 5707Мб/1024=5.7гб)
ну а в свойствах все как надо

Поэтому помните, что одна и та же модель может на разных сайтах может весить по разному. На huggingface будет показывать вес больше чем на civitai.

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

1717
1 комментарий

Нихрена не понятно, но очень интересно....

1
Ответить