ComfyUI Agrega Nodo Central de Atención Dispersa y Compilador Comfy
La atención dispersa por bloques llega al núcleo de ComfyUI con tres backends para MiniMax H3, más un compilador de memoria que reduce el uso de VRAM y acelera los renders largos.
Atención dispersa por bloques: un nodo, tres backends
El nuevo nodo Atención dispersa por bloques (categoría advanced/model, marcado como experimental) reside en comfy_extras/nodes_sparse_attention.py y enruta cada bloque de consulta solo a un subconjunto seleccionado de bloques clave. La aceleración relativa aumenta con la longitud de la secuencia, que es exactamente el régimen de clips H3 de 10 segundos. Una protección min_tokens mantiene las secuencias cortas densas automáticamente.
Tres modos de selección se incluyen en el mismo nodo:
- Sol-Attn (tau adaptativo): un umbral adaptativo por cabeza en sigmas de distribución de puntuación.
tau1.0 mantiene aproximadamente el 16% de los bloques clave exactos, 1.5 alrededor del 7%, y 2.0 alrededor del 2.7%. Este es el modo que funciona sin pesos especialmente entrenados. - top-k (SLA): un
keep_percentfijo de bloques clave en todas partes. Esto coincide con lo contra lo que se destilan los LoRAs turbo estilo SLA de lightx2v, por lo que es RECOMENDADO solo con esos pesos entrenados. - VSA (FastVideo): mosaico cúbico con una rama de compresión gruesa, coincidiendo con la configuración de entrenamiento FastH3-VSA a tasa de retención del 10%. Utiliza las capas
to_gate_compressdel modelo cuando están presentes.
Una ventana de programación (start_percent / end_percent, predeterminado 0.2 a 1.0) mantiene los pasos iniciales de denoise densos, y dos opciones avanzadas específicas de H3 manejan el acondicionamiento: sink_conditioning atiende las filas de texto/audio/referencia empaquetadas exactamente (~3% de costo) para que los prompts y el audio no se degraden, y extra_tokens añade los tokens de mayor puntuación más allá de los bloques seleccionados para permanecer más cerca de lo denso.
Hasta ahora esta funcionalidad existía solo como paquetes de nodos Comunidad separados, y las pruebas de la Comunidad habían mostrado que el LoRA por sí solo no hace nada sin un backend disperso compatible. El nodo central consolida los tres enfoques detrás de una sola interfaz, para que un único Flujo de trabajo pueda cambiar entre Sol-Attn, SLA y VSA cambiando una sola lista desplegable.
La prueba del Compilador Comfy del PR #15861: MiniMax H3 720p a 158 cuadros en una RTX 5060 muestra una huella de VRAM estable y una tasa de iteración mucho más alta una vez que el compilador de Memoria está Activo.
Compilador Comfy: menos asignaciones, pasos más rápidos
El Compilador Comfy (PR #15861) es un proceso de compilación de dos capas:
- El compilador de Memoria aimdo (en comfy-aimdo 0.5.0) calcula y minimiza las asignaciones de Memoria por adelantado, reduciendo las llamadas de asignación CUDA a una configuración única y manteniendo la Memoria de Inferencia estable y constante. Según el PR, esto elimina la fluctuación del asignador y la carrera entre la presión de VRAM dinámica y los números reportados de CUDA, y garantiza que el pico físico de VRAM coincida con el pico de asignación lógica en lugar de permitir que las asignaciones liberadas permanezcan en la Caché.
- Capa de Gráficos CUDA encima. Las direcciones virtuales estables producidas por el compilador de Memoria son lo que hacen seguro el registro del Gráfico; la sincronización solo es necesaria en el primer bloque transformador.
El efecto práctico se muestra en las pruebas del PR: una ejecución de MiniMax H3 720p de 158 cuadros en una RTX 5060 que anteriormente se detenía sin progreso de iteración completa en aproximadamente 43 segundos por paso después del cambio, y el muestreo AR de MiniMax Music 3 gana aproximadamente un 35% de rendimiento por paso en la misma tarjeta.
Todos los Modelos que usan el prefetcher más MiniMax H3 se convierten en la fusión inicial. WAN se lista como trabajo futuro, lo cual elevaría sus tamaños de generación máximos factibles de la misma manera.
ANTES: la ejecución H3 prepara 19.9 GB de pesos escalonados y luego se queda en silencio durante varios minutos. DESPUÉS del cambio, la misma ejecución muestra un progreso constante por paso.
La trampa: OOM temprano y cierres por Cancelar
Las pruebas de la Comunidad en el Discord de Banodoco marcaron dos aristas ásperas en los primeros días. Las ejecuciones dispersas pueden dar OOM cuando el Compilador Comfy también está Activo, y cancelar una ejecución mientras el nodo disperso está cargado puede hacer que ComfyUI falle. Un commit de seguimiento (#16148, "Pausar compilador Comfy para asignaciones dispersas de larga duración") ya abordó la interacción, y --disable-comfy-compiler sigue disponible como una bandera de respaldo. La ruta de respaldo denso del nodo significa que si una secuencia cae fuera de la ventana de programación o bajo min_tokens, simplemente ejecuta el backend denso normal sin reconfiguración.
Disponibilidad
Ambas características están en las compilaciones actuales de ComfyUI: el nodo Atención dispersa por bloques requiere comfy-kitchen 0.2.33 (ya en requirements.txt), y el Compilador Comfy es parte del núcleo con comfy-aimdo 0.5.2. No se necesitan pasos de instalación adicionales en instalaciones actualizadas; los usuarios en los Flujos de trabajo de MiniMax H3 solo deben colocar el nodo entre el cargador de modelo y el MUESTREADOR.
Comentarios
Inicia sesión con GitHub para unirte a la conversación.