DNK

DNK 

Stable Diffusion - учусь сам, делюсь с другими.

56subscribers

29posts

goals1
$4.23 of $212 raised
На развитие сайта по тематике Stable Diffusion - stALogen.ru

Ускорение Flux-модели в ComfyUI: nunchaku svdq-int4-flux

Материал будет полезен не только тем кто хочет ускорить Flux модель, но и тем у кого мало видеопамяти (VRAM). На RTX 3060 с 12 GB загрузка составляла 32% на дистиллированной CLIP модели со скоростью генерации в 25 сек.  Когда даже на урезанной модели FP8 скорость генерации составляет свыше 3 минут.
Что за Flux и зачем его ускорять?
Flux — это тип модели для генерации изображений, работающей в ComfyUI — визуальном интерфейсе для нейросетей. Модель Flux отличается высокой качественной детализацией и реалистичной анатомией, но требует много ресурсов, особенно VRAM. Инструкция актуальна для владельцев карт с 12ГБ VRAM и менее.
Что мы будем использовать.
1) nunchaku — система управления ускорением нейросетей, использующая современные методы оптимизации. Дабы не вдаваться в подробности установки, воспользуемся готовой сборкой в которой есть всё необходимое от автора OreX🔗 Ссылка на Boosty с инструкцией и файлами - сборка бесплатная (будем использовать triton сборку), помимо сборки нам понадобится скачать от туда же модели📺 Обзор от OreX на YouTube
2) svdq-int4-flux — специальная сжатая версия модели Flux, использующая формат INT4, который уменьшает размер модели в несколько раз без заметной потери качества. В папку "ComfyUI\models\diffusion_models\" создаём папку svdq-int4-flux.1-dev и кладём туда файлы . Ещё лучше будет использование модели с Civitai под названием SVDQuant-int4-CreArt_Ultimate for Nunchaku 0.2.0 And 0.3.0 - скачивается архивом, нужно распаковать в корень "ComfyUI\models\diffusion_models\ " - данная модель не уступает по качеству, но по заверению автора позволяет генерировать на 10 шагах без турбо Lora!!
Если будем работать с fill моделями то аналогичным образом создаём папку svdq-int4-flux.1-fill-dev и качаем соответствующие файлы
Запуск сборки с помощью RUN-FAST.exe (роли не играет, но на всякий случай уточняю)
* Если будут проблемы с Frontend отображением, из корня сборки подаём две командочки:
python_embeded\python.exe -m pip uninstall comfyui-frontend-package -y
python_embeded\python.exe -m pip install comfyui-frontend-package
Результаты
На RTX 3060 с 12GB и разрешении 1216*832px вторая генерация после "прогрева":
- nunchaku + SVDQuant-int4-CreArt_Ultimate на 10 шагах = 12 сек
- nunchaku + svdq-int4-flux на 20 шагах = 26 сек  
- Lora FLUX.1-Turbo-Alpha + gguf модель на 8 шагах = 1мин 53сек 
- Lora FLUX.1-Turbo-Alpha +wavespeed с компиляцией FP8 модели Triton на 8 шагах = 44сек 
- Lora FLUX.1-Turbo-Alpha FP8 модели на 8 шагах = 1мин 20сек
- обычная генерация FP8 модели на 20 шагах = 3 мин 14 сек
🔧 Как это работает?
1) Загрузите свежую схему в ComfyUI, или прикреплённую в конце материала.
2) В интерфейсе перепроверьте/перевыберите model_path = svdq-int4-flux.1-dev или svdq-int4-CreArt_Ultimatesvdq-int4-CreArt_Ultimate
Плюшки схемы
В дополнение к ускоренной генерации входят группы которые можно вкл/выкл:
 - Постобработка - детализация посредством внесения шума
 - Корректировка - цветокоррекция и эффекты
Как сэкономить VRAM - для слабых ПК
Обычно для FLUX моделей используется двойной загрузчик clip моделей:
clip_name1 - Глубокое понимание текста с интерпретацией (например, понимает метафоры, сложные выражения) , clip_name2 - Стабильная визуальная связь с текстом, согласованность.
Без этого Flux не будет правильно интерпретировать запросы и картинки будут либо слишком буквальные, либо терять смысл.
Каждая модель весит довольно прилично, что занимает память и время на обработку. Соответственно в случае простеньких композиций или ограниченном ресурсе по "железу" можно воспользоваться альтернативой. Сразу скажу - это будет в ущерб следования подсказке, но на слабом оборудовании у нас появляется возможность хоть как-то работать. Например стандартная модель t5xxl_fp8_e4m3fn.safetensors = 4,5 ГБ, квантованная версия t5-v1_1-xxl-encoder-Q3_K_S.gguf = 1,9ГБ, а дистиллированная модель DistillT5 = 0,5ГБ.
Для запуска модели DistillT5 необходимо в запустить командную строку, перейти в каталог  ComfyUI/custom_nodes и клонировать репозиторий командой git clone https://github.com/LifuWang-66/DistillT5ComfyUI.git (или скачать недостающую ноду через менеджер). 
Затем нужно перейти в каталог ComfyUI/models/clip и скопировать модель. Для удобства использования я обычно создаю более понятные подпапки, например папку ComfyUI/models/clip/svdq-flux.1-t5, а сам файл переименовываю в данном случае в T5EncoderWithProjection.safetensors - таким образом становится немного более понятно назначение файлов и их источник.
Теперь вместо стандартного двойного загрузчика CLIP нужно использовать ноду "DualCLIPLoader for T5Base"
В примере ниже показана нода и пример с разными clip_name1.
Подсказка: на одной фотографии 4 женщины, слева девушка в очках и красной футболке, в центре две девушки с одинаковыми прическами в виде косичек, но с разной длиной волос, одеты одна из этих девушек в бикини, а другая в смокинг, справа на девушке желтая шапочка и синяя шубка, слева у девушки надпись на футболке "cccp", на заднем плане макдональдс, все девушки вытянули руки перед собой.
Пример на полном Cpip=t5xxl_fp8_e4m3fn.safetensors
Пример на DistillT5 Cpip=T5EncoderWithProjection.safetensors
Вывод с Clip - очевиден, использование актуально на простеньких композициях и слабом железе. На RTX3060 с 12GB VRAM на обычном clip = t5xxl_fp8_e4m3fn генерация отжирала 66% VRAM, а на clip = T5EncoderWithProjection 32%. Время генерации одинаковое. И это на SVDQ модели, когда даже на моделях FP8 память забивается под 100% не говоря уже про время генерации.
Сама схема:
png
Stalogen-svdq.png2.12 Mb
Примечание: схема из универсальных блоков, поэтому ненужные группы или ноды отключены, но не удалены - они нужны для дополнения схемы подсказкой из референсов, при замене группы отвечающей за модель генерации и т.д., т.е. в целом нужны для дополнительных целей и не мешают текущей цели эксперимента.  
Более подробно с самой схемой можно ознакомиться тут: https://stalogen.ru/uskoryaem-flux/
Свеженькая схема будет тут: https://stalogen.ru/prompt/nunchaku-svdq-int4-flux/
Missing Node Types DualCLlPLoaderT5Base не находит в missing nodes.
DNK, я это знаю, иначе бы не писал об ошибке все операции мыслимые и немыслемые я проделал уже.
Romanio Amd, скачать и распаковать архивом пробовали? https://github.com/LifuWang-66/DistillT5ComfyUI.git
Subscription levels3

Поддержка штанов автора

$0.15 per month
Благодарность автору, на пропитание.

Признательность

$1.41 per month
На вдохновение и последующие материалы 

Благословление на подвиги

$14.1 per month
Просто так 
Go up