MiniMax H3 LightX2V SLA + KJ Sage Composer (Advanced EXP)
When SLA and KJ Sage both want the attention path, this composer picks one owner per call
- model
- sigmas
- model
- runtime
- report_json
Here's the awkward situation this node solves: KJNodes ships a widely-used memory-efficient Sage patch for H3, and the LightX2V SLA node wants to own attention too. If you just wire both in, they fight over the same hook - and the SLA path's whole 85%-sparse speed bet silently collapses into "every attention call runs both kernels" or worse, one patch bypasses the other. The README is blunt that the basic SLA loader must exclusively own attention, and that the fix for people who also want KJ Sage is this specific composer, not jamming the two together.
So the job: compose an upstream KJNodes MiniMax H3 memory-efficient Sage patch with LightX2V SLA under one audited attention owner, with the rule that no single attention call ever runs both kernels. SLA apply calls use block-sparse Sage2; dense-control and anything outside the SLA route keep KJ Sage.
How it works
The wiring order is sacred, straight from the tooltip: Dual-Clock → KJNodes MiniMax H3 Mem Eff Sage Attention Patch → this Composer. Do not insert ModelAttentionBackend, Sol-Attn, or another attention node in between. The composer takes that already-KJ-patched MODEL, plus the same 4-step native_flow SIGMAS from Dual-Clock (video shift 6.0, audio shift 3.0), and installs the LightX2V SLA LoRA on top with routing that decides per-call which backend runs.
mode is the routing switch: apply_lightx2v_sla (default) sends SLA apply calls down the block-sparse Sage2 path; dense_lora_control keeps the same LoRA but routes all 50 main blocks through the authenticated upstream KJ Sage forward - that's your A/B control to prove the SLA path actually differs. base_policy defaults to auto_detect_exp (official base is BF16 FL2VA; quantized bases stay experiments), and max_router_workspace_mib (512) is the fail-closed ceiling for the SLA router's workspace.
The lora_name default is the pinned LightX2V FL2V Turbo-SLA ComfyUI BF16 LoRA - same one the plain SLA loader uses. The SHA/patch verification is the same level of paranoid.
The inputs that matter
model- the KJ-patched MODEL, and the order matters more than anything else on this page.sigmas- the 4-stepnative_flowSIGMAS from Dual-Clock with those exact shifts.mode-apply_lightx2v_slavsdense_lora_controlfor a scientific A/B.lora_name- the pinned SLA LoRA, verified.
Outputs
model (routed, feed to the sampler), runtime (H3_T8_LIGHTX2V_SLA_RUNTIME for the SLA Audit node), and report_json.
Installing it
Three pieces. Pack: ComfyUI Manager → "MiniMax H3 Audio T8" (or clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8 into ComfyUI/custom_nodes, restart). The external KJNodes pack: ComfyUI-KJNodes, only needed for this composer's upstream patch. And spas-sage-attn matched to your Torch/CUDA for the SLA kernel. No other mandatory pip deps.
Common issues
"Don't insert another attention node" errors / weird sampling. You've put ModelAttentionBackend or Sol-Attn in the chain. Remove it. The composer is the single attention owner by design; anything else in the path breaks the routing contract.
A/B shows no difference between SLA and dense. Then on your workload the router isn't buying you anything - which is exactly why the A/B control exists. The README says one structure + regression pass is verified, not that SLA is always faster. Run the SLA Audit after the sampler so you know which kernel actually executed per call.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | Connect Dual-Clock MODEL to KJNodes MiniMax H3 Mem Eff Sage Attention Patch, then connect that MODEL here. Do not insert ModelAttentionBackend, Sol-Attn or another attention node. | |
| sigmas | SIGMAS | Connect the same 4-step native_flow SIGMAS from Dual-Clock (video shift 6.0, audio shift 3.0). | |
| lora_name | COMBO | minimax_h3_fl2v_turbo_4step_v0.1_768p_sla_comfyui_bf16.safetensors | Pinned LightX2V MiniMax H3 FL2V Turbo-SLA ComfyUI BF16 LoRA. |
| mode | COMBO | apply_lightx2v_sla | apply_lightx2v_sla uses SLA block-sparse Sage2. dense_lora_control keeps the same LoRA and routes all 50 main blocks through the authenticated upstream KJ Sage forward. |
| base_policy | COMBO | auto_detect_exp | The official SLA base is BF16 FL2VA; quantized bases remain explicit compatibility experiments. |
| max_router_workspace_mib | INT | 51232–2048 | Fail-closed ceiling for SLA router score/map workspace. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| runtime | H3_T8_LIGHTX2V_SLA_RUNTIME | — |
| report_json | STRING | — |