Оптимизация видео VAE MiniMax H3 в ComfyUI 0.36.0

ComfyUI Wikinews

ComfyUI 0.36.0 ускоряет видео VAE MiniMax H3 с помощью ядер comfy-kitchen, а официальный репозиторий Comfy-Org теперь содержит компактный int8 convrot VAE.

Видео VAE MiniMax H3 был переписан под новые ядра comfy-kitchen в ядре ComfyUI (PR #16187, объединён 15 сентября), а официальный репозиторий Comfy-Org/MiniMax-H3 теперь содержит компактный видео VAE int8 convrot. Обе части входят в ComfyUI 0.36.0: не нужно устанавливать ноды и перестраивать рабочий процесс.

Что изменилось в пути VAE

Все изменения находятся в comfy/ldm/minimax/vae.py и comfy/ops.py. Ядра взяты из comfy-kitchen #167, объединённого 13 сентября.

  • Объединённые проходы энкодера. group_norm_silu_pad3d выполняет покадровый GroupNorm, SiLU и reflect/causal padding за один проход и выдаёт NDHWC, чтобы cuDNN работал без преобразований раскладки. В PR этот шаг описан как lossless и всегда включённый.
  • Накопление в fp16. ck.fp16_conv3d и ck.fp16_linear используют ядра CUTLASS с накоплением в fp16, где bias и residual свёрнуты в эпилог. Они включаются при --fast с накоплением в fp16, а слишком маленькие для загрузки GPU запуски передаются обратно в cuBLAS.
  • Декодер int8. Декодеры с квантованием int8 проходят через ck.int8_attention и int8 GEMM, в эпилоге которого находится residual, при этом rms_norm/swiglu свёрнуты в квантователь активаций, а между плитками 128x256 и 128x128 действует защита wave-quantization.
  • Пакетное декодирование плиток. tiled_decode теперь декодирует до четырёх плиток одновременно, ограничиваясь объёмом свободной памяти, поэтому плиточные запуски больше не идут кадр за кадром.
  • Совместимость с динамической VRAM. Веса и параметры нормализации поступают через cast_bias_weight, поэтому всё перечисленное продолжает работать при динамической загрузке VRAM в ComfyUI.

Если comfy-kitchen или конкретное ядро отсутствует, код откатывается к предыдущей eager-последовательности, так что старые установки не затрагиваются.

Измеренный эффект

В PR с ядрами приводятся сквозные вызовы comfy.sd.VAE при 1344x768 на 362 кадрах, измеренные на 5090:

ПутьДОПОСЛЕ
Кодирование (fp16)46.6 с32.0 с
Кодирование (--fast, накопление fp16)47.2 с21.2 с
Декодирование (fp16)34.6 с31.1 с
Декодирование (--fast)27.7 с23.2 с
Декодирование (int8)18.7 с12.9 с

Качество измерялось относительно точного пути: 68 дБ для кодирования с накоплением fp16 и 67.7 дБ для декодирования int8, тогда как собственный предел реконструкции VAE составляет около 38 дБ. Последующий коммит в ядро (PR #16332) ещё немного снижает потребление памяти MiniMax VAE.

int8 convrot VAE переезжает в официальный репозиторий

Использовать нужно файл vae/minimax_h3_video_vae_int8_convrot.safetensors в Comfy-Org/MiniMax-H3, загруженный 15 сентября, размером 2.81 ГБ. На вопрос в ветке Reddit о том, чем он отличается от ранее распространявшегося для H3 экспериментального int8 VAE (3.17 ГБ), Kijai ответил, что энкодер теперь хранится в fp16, а не в fp32: он и так по умолчанию работал в fp16, поэтому оба декодируют одинаково, и оставить стоит меньший файл.

Выход MiniMax H3 Ref2VA из ветки, где сообщили об улучшении

Запуск MiniMax H3 reference-to-video с тремя референсными изображениями при максимальном разрешении, которое позволяет карта автора; опубликовано вместе с отчётом в Reddit об обновлённом VAE (u/Chiduck99).

Что видят пользователи на младших картах

Об этом стало известно из отчёта в Reddit от пользователя с RTX 3060 12 ГБ, у которого предыдущий потолок с H3 составлял 0.8 МП при 10 секундах. С обновлённым VAE на той же карте он сообщает о 1 МП при 10 секундах и 0.7 МП при 15 секундах без заметной потери качества. Ответ Kijai в той же ветке связывает загрузку с работой над ядрами: оптимизированные пользовательские ядра в comfy-kitchen ускоряют и int8 VAE, и оригинальный fp16 VAE одинаково, и они всегда включены, пока ComfyUI и comfy-kitchen обновлены.

Доступность

Обе части входят в ComfyUI 0.36.0 (15 сентября). Путь VAE приходит через PR #16187, а comfy-kitchen 0.2.34 закреплён в requirements.txt этого тега (0.2.35 в текущем master), так что обновлённой установке ничего дополнительно не нужно. Видео VAE, аудио VAE и декодер автоматически подхватываются существующими рабочими процессами MiniMax H3.

Комментарии

Войдите через GitHub, чтобы участвовать в обсуждении.

Загрузка комментариев…
Оптимизация видео VAE MiniMax H3 в ComfyUI 0.36.0 | ComfyUI Wiki