Компилятор Comfy и узел разреженного внимания добавлены в ядро ComfyUI
Блочное разреженное внимание вошло в ядро ComfyUI с тремя бэкендами для MiniMax H3, плюс компилятор памяти, который снижает расход VRAM и ускоряет длинные генерации.
Блочно-разреженное внимание: один узел, три бэкенда
Новый узел Блочно-разреженное внимание (категория advanced/model, помечен как экспериментальное) находится в comfy_extras/nodes_sparse_attention.py и направляет каждый блок запроса только в выбранное подмножество блоков ключей. Относительное ускорение растет вместе с длиной последовательности, что соответствует режиму клипов H3 длительностью 10 секунд. Защита min_tokens автоматически сохраняет короткие последовательности плотными.
Три режима выбора поставляются в том же узле:
- Sol-Attn (адаптивный tau): адаптивный порог на голову в сигмах распределения оценок.
tau1.0 сохраняет примерно 16% блоков ключей точными, 1.5 около 7%, и 2.0 около 2.7%. Это режим, который работает без специально обученных весов. - top-k (SLA): фиксированный
keep_percentблоков ключей везде. Это соответствует тому, против чего дистиллируются турбо LoRA в стиле SLA от lightx2v, поэтому РЕКОМЕНДУЕТСЯ только с этими обученными весами. - VSA (FastVideo): кубическая плитка с ветвью грубой компрессии, соответствующая настройке обучения FastH3-VSA при скорости сохранения 10%. Использует слои модели
to_gate_compress, когда они присутствуют.
Окно расписания (start_percent / end_percent, по умолчанию 0.2 до 1.0) сохраняет ранние шаги denoise плотными, а две опции расширенного уровня, специфичные для H3, обрабатывают условие: sink_conditioning обращается к упакованным строкам текста/Аудио/ссылки точно (~3% стоимость), чтобы промпты и Аудио не деградировали, а extra_tokens добавляет токены с наивысшим баллом за пределами выбранных блоков, чтобы оставаться ближе к плотности.
До сих пор эта функциональность существовала только в виде отдельных пакетов узлов Сообщества, и тестирование Сообществом показало, что сама LoRA ничего не делает без соответствующего бэкенда разреженного внимания. Узел ядра консолидирует три подхода за одним интерфейсом, так что один Рабочий процесс может переключаться между Sol-Attn, SLA и VSA, изменив одно КОМБО поле.
Бенчмарк Компилятора Comfy из PR #15861: MiniMax H3 720p на 158 кадрах на RTX 5060 показывает стабильный след VRAM и гораздо более высокую скорость итераций, когда компилятор памяти активен.
Компилятор Comfy: меньше выделений, быстрее шаги
Компилятор Comfy (PR #15861) — это двухслойный процесс компиляции:
- Компилятор памяти aimdo (в comfy-aimdo 0.5.0) вычисляет и минимизирует выделения Памяти заранее, сводя вызовы выделения CUDA к одноразовой настройке и сохраняя Память вывода стабильной и постоянной. Согласно PR, это устраняет тряску аллокатора и гонку между давлением динамической VRAM и отчетными числами CUDA, и гарантирует, что пик физической VRAM совпадает с пиком логического выделения вместо того, чтобы позволять освобожденным выделениям задерживаться в Кэше.
- Слой CUDA Графов сверху. Стабильные виртуальные адреса, производимые компилятором Памяти, делают запись Графа безопасной; синхронизация нужна только на первом блоке трансформера.
Практический эффект виден в бенчмарках PR: запуск MiniMax H3 720p 158 кадров на RTX 5060, который ранее зависал без прогресса итераций, завершается примерно за 43 секунды на шаг после изменения, а выборка MiniMax Music 3 AR получает около 35% пропускной способности шагов на той же карте.
Все Модели, использующие префетчер плюс MiniMax H3, конвертированы в начальном слиянии. WAN указан как будущая работа, что повысит его максимальные размеры генерации тем же способом.
ДО: запуск H3 готовит 19.9 ГБ размещенных весов и затем замолкает на несколько минут. ПОСЛЕ изменения тот же запуск показывает стабильный прогресс на шаг.
Подводный камень: ранний OOM и краши Отмены
Тестирование Сообщества в Banodoco Discord отметило два шероховатых края в первые дни. Запуски разреженного внимания могут вызвать OOM, когда Компилятор Comfy также активен, и Отмена запуска, пока загружен узел разреженного внимания, может привести к крашу ComfyUI. Следующий коммит (#16148, "Пауза компилятора comfy для долгоживущих выделений разреженного внимания") уже решил взаимодействие, и --disable-comfy-compiler остается доступным как флаг резервного копирования. Путь падения плотности узла означает, что если последовательность выходит за пределы окна расписания или ниже min_tokens, она просто запускает Обычный плотный бэкенд без перепроводки.
Доступность
Обе функции находятся в Текущих сборках ComfyUI: узел Блочно-разреженное внимание требует comfy-kitchen 0.2.33 (уже в requirements.txt), а Компилятор Comfy является частью ядра с comfy-aimdo 0.5.2. Никаких дополнительных шагов установки не требуется на обновленных установках; пользователи Рабочих процессов MiniMax H3 просто помещают узел между загрузчиком Модели и СЭМПЛЕРОМ.
Комментарии
Войдите через GitHub, чтобы участвовать в обсуждении.