За последнюю неделю по сети прокатилась целая волна постов про InstantID, позволяющего без обучения и файн-тюнинга создавать изображения с загруженным вами лицом человека. Но самая главная проблема заключалась в том, что при локальном запуске, официальная версия требовала 24 гигабайта видеопамяти для своей работы. Мне же удалось поумерить аппетиты до 12-14 гигабайт, а также ускорить вывод в несколько раз.
В этом посте же я расскажу про отличия и особенности модификации. Ссылка на загрузку будет в конце данного поста.
Перевод на русский
Интерфейс программы переведен на русский язык, чтобы повысить комфорт работы для людей, которые недавно начали работать с нейросетями. Расширенные же настройки остались на английском, т.к. многие термины для опытных пользователей привычнее видеть именно в таком формате.
Не требует установки
Сборка является портативной - она не требует установки каких либо доп программ, пакетов либоо чего-то еще. Вам надо всего лишь распаковать архив и запустить один из bat файлов. Единственное при первом запуске она скачает модель. Это было сделано для того чтобы не раздувать размер архива до 20+ Гб.
Расширенный функционал
Обычная генерация и генерация с улучшением лица
Кроме оптимизации памяти, я добавил RestoreFormer++ для улучшения лица, а также возможность увеличивать размер изображения на выходе до x4. В будущих обновлениях планирую добавить выбор модели для апскейла.
Оптимизация и работа без видеокарты
Базовая версия требовала 30 шагов для создания изображения. Благодаря технологии LCM и SDXL Turbo, я снизил количество шагов до 4 по умолчанию. Такое значение ускоряет вывод в несколько раз, при этом выдавая вполне нормальное качество.
Благодаря всему этому, работа через процессор стала возможной. К примеру генерация на Ryzen R9 5900X заняла около 2-х минут с использованием 20-24 гигабайт оперативной памяти. Увы, из за того что CPU не поддерживает по умолчанию FP16 и работает в режиме FP32 потребление памяти больше, чем на GPU. Возможно в будущем получится оптимизировать работу с использованием bfloat16, тогда потребление оперативки будет намного меньше.
Если вы владелец RTX 3090, 4090 или какой-то подобной карты, вы можете отключить оптмизацию работы с памятью и ускорить вывод. Для этого, сразу после запуска откройте расширенные настройки и отключите Enable TinyVAE и Enable Attention Slicing
Также вы можете заменить модель по умолчанию. Пока что поддерживаются только модели с HuggingFace. Для этого отредактируйте bat файл для запуска и измените строку с:
python gradio_demo\app_lcm.py
на
python gradio_demo\app_lcm.py --pretrained_model_name_or_path hg_username/model_name
где --pretrained_model_name_or_path это аргумент для указания модели, а hg_username/model_name это указание на модель. После измненеия модель загрузится с HuggingFace и в последующем уже будет работать локально.
Нормальную поддержку выбора кастомных моделей с Civitai добавлю позже.
Где скачать
Скачать архив с портативной версией можно тут. Или же через Яндекс Диск
Если у вас ошибки при распаковке - обновите WinRAR.
Важно чтобы в пути до папки со сборкой не было кириллических названий, путь должен быть на английском, иначе возможны серьёзные ошибки.
Будущие обновления
Будущие обновления будут публиковаться в моем Телеграм канале. Там же вы можете найти и другие сборки различных нейронок.
Если же у вас возникнут проблемы, то вы можете спросить как и решить в нашем чате