Как конвертировать модель нейросети из safetensors в ckpt?
Как конвертировать модель нейросети из формата safetensors в ckpt?
Самый простой способ преобразовать модель нейросети из формата safetensors в формат ckpt — установить NMKD Stable Diffusion GUI или другую программу с аналогичной функциональностью, скопировать модель, которую необходимо модифицировать, затем использовать встроенный конвертер.
Теперь попробую объяснить процесс поэтапно, чтобы вам было проще его повторить.
Перед конвертацией в NMKD GUI перенесите файл с расширением .safetensors в папку с моделями, находящуюся на диске с установленной программой. По умолчанию путь к папке выглядит следующим образом — C:\SD-GUI-XXX\Data\models, где C — название носителя, на котором хранится NMKD GUI, а XXX — обозначение версии программы.
Измените путь к папке под себя или найдите его вручную, скопируйте файл, затем запустите NMKD.
После запуска программы нажмите на иконку с изображением гаечного ключа, кликните на пункт Convert Models, после чего укажите в разделе Model Input Formats формат Safetensors, в Model File — модель, которую хотите конвертировать, в Model Output Format — новый формат модели.
В версии 1.8.1 ПО может конвертировать файл исключительно в Pytorch (ckpt/pt), но этого более чем достаточно для использования модели нейросети в NMKD GUI.
Для запуска конвертации останется нажать кнопку Convert и немного подождать.
Как только конвертация закончится, в названии нейронной сети появится упоминание нового формата, а расширение изменится на .ckpt, после чего модель можно будет выбрать в настройках NMKD и использовать для генерации изображений.
Одновременно преобразовать несколько файлов в новый формат не получится - программа поддерживает только одиночное конвертирование нейросетей.
Перед запуском следующей конвертации нужно дождаться завершения обработки предыдущей модели, затем выбрать нужную нейросеть в сроке напротив Model File, после чего снова нажать на кнопку Generate:
Учитывайте, что конвертировать модели на базе SD 2.0 или SD 2.1 в NMKD бесполезно, поскольку GUI не поддерживает подобные модели нейросетей.
Когда точно добавят поддержку — неизвестно, поэтому для комфортной работы лучше использовать другие GUI. Например, Automatic1111 — Stable Diffusion web UI.
Если вам не нужен исходник модели, его можно удалить после конвертации. Причём сделать это можно двумя способами:
- Вручную;
- Автоматически. Чтобы файл удалился из системы без вашего вмешательства, перед конвертацией нужно выделить чекбокс напротив надписи Delete Input File If Successful.
Существуют альтернативные способы конвертировать модель нейросети из Safetensors в ckpt.
Первый вариант — скачать Safe & Stable Ckpt2Safetensors Conversion Tool.
Это простой инструмент, подходящий для Windows 10 (11), не требующий установки дополнительного софта. Конвертировать модели можно напрямую в GUI. В интерфейсе программы сложно запутаться, функциональность минимальна, да и размер архива достаточно компактен — всего 220 Мб.
Второй вариант — установить расширение sd-webui-model-converter для Automatic1111 (не работает отдельно без этого GUI, не подходит для других приложений).
Дополнение не обязательно скачивать, поскольку его можно найти на вкладке расширений в разделе Model Converter. У него есть три важных преимущества перед другими конвертерами:
- Регулярные обновления. Чтобы скрипт подходил для разных версий SD, в него вносятся изменения, поэтому он может «переварить» те модели, которые не получиться конвертировать с помощью предыдущего инструмента или NMKD;
- Поддержка самого популярного GUI для работы с SD и другими графическими нейросетями. Это заметно увеличивает шансы на то, что модель запустится после конвертации или не выдаст ошибку во время неё;
- Небольшой размер. Вам не нужно скачивать громоздкие дистрибутивы ради крошечного скрипта.
Главный минус sd-webui-model-converter — жёсткая привязка к Automatic.
Иногда GUI ломается после обновления, поэтому у вас могут возникнуть проблемы с конвертацией. Пока не будет выпущен патч, устраняющий сбой, вам придётся отложить идею о конвертации в сторону, а это достаточно неприятно. Даже если подобное случается редко, стоит учитывать и такую вероятность. Тот же NMKD медленно и редко обновляется, но значительно реже ловит странные баги.
Удачных экспериментов!
Понравилась статья? Поддержите автора комментарием, донатом, подпиской на Telegram и другие страницы!
2 комментария
Павел
Здравствуйте, вопрос немного не по теме, но вы мне уже помогали вперёд, а ответа на вопрос в инете я не нашёл. в ранешней версии NMKD SD GUI 1.7.2 при создании картинки нейросеть сама увеличивала исходное изображение например с 1024*1024 до 4096*4096, а в новой версии такая функия отсутствует, ну или я не всё просмотрел, как быть: ведь при указании рамера картинки 1024*1024 конечное изображение останется с таким же размером
Tengyart
Здравствуйте!
В последних версиях NMKD увеличение изображений по умолчанию отключено.
Чтобы его включить и использовать для всех создаваемых картинок, зайдите в настройки Post Processing (открывается после нажатия на иконку с изображением волшебной палочки со звёздами вокруг, находится после разделителя и иконки Chat on Discord в верхней части программы), активируйте чекбокс напротив Run upscaling for every generated image, в разделе Upscaling factor укажите 4x для увеличения с 1024*1024 до 4096*4096 пикселей. Помимо этого, проверьте Upscaling Strength — дополнительный параметр, регулирующий степень воздействия апскейлера на генерируемые арты. Если сбросить шкалу до 0, масштабируемые арты генерируются без удаления артефактов и шумов, если увеличить силу воздействия до 1, тогда во время масштабирования нейросеть будет максимально удалять любые паразитные искажения, включая шумы и артефакты, добавляя резкость и сильно сглаживая увеличенные изображения.
Если настройки масштабирования нельзя поменять или они не отображаются, нажмите на иконку Open Installer с изображением монитора и стрелочкой вниз, затем щёлкните на кнопку Re-Install Upscalers и дождитесь завершения установки.
Надеюсь, это поможет решить вашу проблему!