H3 Unified Acceleration
One node to stack every H3 acceleration trick — if you install the dependencies
- model
- model
There are a handful of well-known speed tricks for MiniMax H3 on a consumer GPU - SageAttention for fast attention, low-VRAM attention and chunked feed-forward patches, and Sol-Attn as a fallback dense backend. The JR H3 Unified Acceleration node is a single switchboard that composes all of them in a fixed order: KJ Sage → Low VRAM Attention → Chunk FeedForward → Sol-Attn. You feed it a MODEL, it returns a patched MODEL ready for the sampler.
Here's the honest part, up front: this node does not install or vendor the actual accelerators. They're external dependencies that this pack deliberately refuses to copy - you bring kijai/ComfyUI-KJNodes (for the Sage/Low-VRAM/FFN patches), the SageAttention variant your chosen mode needs (sageattention or sageattn3), and kijai/ComfyUI-SolAttn_triton plus its Triton runtime. They're only resolved at execution time, so a missing one won't stop the other JR nodes from loading - but this node will error when you actually run it. The README is also explicit about install order: Sol must be installed last, so Sage remains the previous dense backend for scenarios where Sol isn't applicable.
The switches that matter
modelin → patchedmodelout. The rest is configuration.sage_attention- pick the backend:disabled,auto, int8 qk/pv variants over CUDA or Triton,sageattn3, orsageattn3_per_block_mean. The default is thecuda++int8 variant.enable_low_vram_attention+head_chunks(default 4) - split attention heads to cap peak memory.enable_low_vram_ffn+ffn_chunks(default 4) +ffn_seq_threshold- chunk the feed-forward over sequence length. The threshold is the sequence length below which chunking kicks in.enable_sol_attn+tau(default 1.3) +start_percent/end_percent(0.2→0.9) - Sol-Attn's soft-attention parameters and the sampling window where it applies.int8_qk/int8_pv- quantization of the QK and PV attention paths; both default on.sink_conditioning(exact_kv,exact_kv_and_rows,off),morton/morton_curve,use_tma,dense_blocks,allow_compile(default off - compilation is slow to build, fast at runtime),verbose.
Every enable is a true bypass - flipping one off removes the patch rather than simulating it with a chunk value.
Recommended chain
The README's acceleration chain puts this node in the middle of the model-prep pipeline:
Load Diffusion Model → Turbo LoRA (external) → Reserved VRAM Setter (optional)
→ H3 Unified Acceleration → JR H3 Adaptive Cache (optional/experimental)
→ Sigma Shift → Basic Guider / Scheduler
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Goldlionren/ComfyUI_JR_MiniMaxH3Node
<your-comfyui-python> -m pip install -r ComfyUI_JR_MiniMaxH3Node/requirements.txt
or ComfyUI Manager → search ComfyUI_JR_MiniMaxH3Node. Then install KJNodes, SageAttention, and SolAttn_triton separately (Sol last), per their own docs.
Troubleshooting
- Runs fine until this node, then errors - a missing external accelerator. The error message tells you which one; install it (SageAttention variants are finicky about CUDA/Triton versions).
- No speedup / slower -
allow_compileoff means no kernel fusion; some backends only pay off at longer sequences. Checkffn_seq_thresholdandmin_tokensagainst your actual clip length. - Sol-Attn-specific artifacts -
tau,start_percent, andend_percentare the tuning knobs; the window defaults (20–90%) are a reasonable starting point, not gospel.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| enable | BOOLEAN | true | — |
| sage_attention | COMBO | sageattn_qk_int8_pv_fp8_cuda++ | 8 options: disabled, auto, sageattn_qk_int8_pv_fp16_cuda, sageattn_qk_int8_pv_fp16_triton, sageattn_qk_int8_pv_fp8_cuda, sageattn_qk_int8_pv_fp8_cuda++, +2 |
| allow_compile | BOOLEAN | false | — |
| enable_low_vram_attention | BOOLEAN | true | — |
| head_chunks | INT | 41–56 | — |
| enable_low_vram_ffn | BOOLEAN | true | — |
| ffn_chunks | INT | 41–64 | — |
| ffn_seq_threshold | INT | 4096256–262144 | — |
| enable_sol_attn | BOOLEAN | true | — |
| tau | FLOAT | 1.300–4 | — |
| start_percent | FLOAT | 0.200–1 | — |
| end_percent | FLOAT | 0.900–1 | — |
| min_tokens | INT | 40960–1048576 | — |
| int8_qk | BOOLEAN | true | — |
| int8_pv | BOOLEAN | true | — |
| sink_conditioning | COMBO | exact_kv_and_rows | 3 options: exact_kv, exact_kv_and_rows, off |
| morton | BOOLEAN | false | — |
| morton_curve | COMBO | 2d_frame | 2 options: 3d, 2d_frame |
| verbose | BOOLEAN | false | — |
| use_tma | BOOLEAN | false | — |
| dense_blocks | STRING | — | |
| tau_profileopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |