Spectrum Apply MiniMax H3
Skip most of the MiniMax H3 transformer — and usually keep the video
- model
- model
MiniMax H3 is a 33B omni-modal model that renders video and native stereo audio in one pass - which is exactly why it's slow. Every sampling step is a full transformer forward over packed text, audio, and video rows. Spectrum's pitch is short: run about half of those passes, predict the rest, and end up with output that's usually close enough to native that you can't tell in a fast cut. It's training-free - no distillation, no LoRA, no API key. The one thing it isn't is lossless.
What it actually does
On an actual step, Spectrum lets native H3 run normally and captures the packed target hidden state - the [audio | video] tail rows the model produces after its final transformer block. On a forecast step, it predicts that hidden state from the previous actual anchors (a small ridge-regularized polynomial fit) and skips the expensive H3 transformer blocks for that step entirely, resuming at the native output and sampler path. The text rows and keyframe/reference rows don't participate in the forecast; only the generated target does.
A typical 20-step Euler or ER-SDE run resolves to 11 actual evaluations and 9 forecasts - roughly half the transformer cost, without touching attention backends or the VAE. But it is an approximation: forecasted steps change the denoising trajectory, so even with the same seed and prompt your output won't be byte-identical to native H3. The maintainer is upfront about that, and the README tells you to A/B it against bypassed for quality-critical work.
Where it sits
MiniMax H3 model loader
-> LoRA / model patches
-> MiniMax H3 Sigma Shift
-> Spectrum Apply MiniMax H3 <- here
-> guider / sampler
You drop it on the model chain right before the sampler, and it returns a cloned, patched model (MODEL in, MODEL out). It only works on ComfyUI's native comfy.ldm.minimax.model.MiniMaxH3Model - point it at anything else and it raises a clear TypeError rather than silently doing nothing. It's fail-closed: samplers it hasn't reviewed, or custom noise samplers it can't prove safe, fall back to native execution instead of guessing. Reviewed samplers include Euler, native and RefDelta ER-SDE, H3 Turbo, and the RES multistep family.
The inputs that matter
Most widgets are calibration knobs you'll never touch. The ones a beginner actually sets:
enabled- flip it off to bypass Spectrum entirely (your A/B control).blend_weight- video spectral share, default0.5. This is your "how aggressive" dial.warmup_stepsandtail_actual_steps- how many native steps run at the start and end. The warmup and tail are always actual, which is a big part of why forecasts stay sane.max_historyandhistory_storage- how many actual anchors are kept and where (system_ramvsvram). Large H3 hidden histories can eat multiple GiB, so keepsystem_ramunless you're sure.
The default offline_smoothing_replay=true uses a two-pass capture-then-replay design that was the historically validated fix for audio stutter, at the cost of a second sampler pass. model_aware_mode stays off by default; set it to full with the default generic-correction settings for the current preferred quality path on native ER-SDE. That's an advanced lane - you can ship the defaults happily.
Installing it
ComfyUI Manager / the Comfy Registry: search ComfyUI-Spectrum-MiniMax-H3 and restart. Or the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/xmarre/ComfyUI-Spectrum-MiniMax-H3.git
# restart ComfyUI
Updating is git pull --ff-only inside the folder, then restart. It has zero Python dependencies - no requirements to pip install. What you do need is a recent-enough ComfyUI (the reviewed contract starts at commit e377e263) and, separately, the H3 weights, VAE, and audio decoder loaded through ComfyUI's native nodes - the pack ships no models. And the weights themselves sit behind the MiniMax H3 Community License, which geofences out the US, EU, UK, and Korea. Running Spectrum doesn't change that; you still need to be licensed to run H3 at all.
Where people get burned
- EasyCache or LazyCache on the same model branch. They can bypass the native H3 observation Spectrum needs, so Spectrum detects them and just stays inactive. Don't stack them.
- Frozen frames with CK attention. Issue #41 is open for a second-generation freeze on some CK + Spectrum systems; update ComfyUI past the upstream peak-VRAM fix before blaming Spectrum.
- Saved workflows keep old values. ComfyUI serializes widget values, so updating the pack doesn't rewrite them - a workflow saved before the replay default changed still runs the old
offline_smoothing_replaysetting. - Expecting identical output. Same seed, same workflow, Spectrum on vs off is not a bit-for-bit match. Treat it as a speed/quality tradeoff and measure it with the pack's own benchmark nodes when it matters.
It's the fastest path to "H3, but fewer expensive steps" in ComfyUI today, and it's honest about being an accelerator rather than a free upgrade. Set debug=true and watch the decision=actual|forecast log before you tune anything else.
Inputs (26)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| enabled | BOOLEAN | true | — |
| blend_weight | FLOAT | 0.500–1 | Direct video spectral share. Audio uses the separate audio_blend_weight setting. In ordinary single-pass H3, video forecasts can still affect later audio through joint transformer calls. |
| degree | INT | 11–16 | Polynomial degree. Values other than 1 disable bootstrap_first_forecast. |
| ridge_lambda | FLOAT | 0.100–10 | — |
| window_size | FLOAT | 2.001–16 | — |
| flex_window | FLOAT | 0.750–8 | — |
| warmup_steps | INT | 10–64 | Initial native solver steps. Values above 1 disable bootstrap_first_forecast. |
| tail_actual_steps | INT | 10–64 | Requested final native tail. RES enforces its three-step solver tail. ER-SDE offline replay promotes only a penultimate step that the normal schedule would forecast, preserving a future exact terminal anchor without a blanket two-step tail. |
| max_history | INT | 82–64 | — |
| debug | BOOLEAN | false | — |
| history_storageopt | COMBO | system_ram | Storage for the bounded causal history, capped by max_history. Offline replay uses the separate offline_archive_storage setting. |
| bootstrap_first_forecastopt | BOOLEAN | true | Forecast solver step 1 from the actual step-0 feature. Requires degree=1 and warmup_steps<=1; incompatible settings disable it with a console warning. |
| anchor_residual_feedbackopt | BOOLEAN | false | Experimental video-scored actual-refresh guard; never injects a hidden residual. Disable offline_smoothing_replay before enabling this mode. |
| selective_rollback_correctionopt | BOOLEAN | false | Experimental thresholded, budgeted rollback for the reviewed deterministic Euler sampler only. Disable offline_smoothing_replay before enabling this mode. |
| offline_smoothing_replayopt | BOOLEAN | true | Compatibility-safe default and historically validated H3 audio/stutter path: capture a local-only trajectory, then apply configured blends using past and future anchors without causal video-to-audio feedback. It uses a second sampler pass and retains every actual anchor. Current controlled native ER-SDE testing favored full single-pass for one recurring temporal facial artifact; replay remains supported. |
| audio_blend_weightopt | FLOAT | 0.000–1 | Direct audio spectral share. The default 0 prevents spectral mixing of audio rows. The default offline replay path also isolates capture from video-to-audio trajectory coupling. |
| offline_archive_storageopt | COMBO | system_ram | Storage for every actual anchor retained until offline replay completes. This archive is not capped by max_history. Keep system_ram for constrained GPUs; vram is an explicit speed/memory tradeoff. |
| model_aware_modeopt | COMBO | off | Experimental model/patch-aware scheduling and confidence. 'schedule' may replace risky forecasts with actual evaluations. 'schedule_confidence' also adapts ridge regularization, usable degree, and spectral share without applying a correction. 'full' additionally applies the bounded generic latest-delta residual correction. Current controlled native ER-SDE testing prefers full single-pass among the compared model-aware quality modes. No equivalent conclusion is established for other samplers. The correction itself adds no denoiser forward. |
| model_aware_risk_thresholdopt | FLOAT | 0.650–1 | Advanced threshold for converting a prospective forecast into an actual model evaluation. Lower values are more conservative and may spend more NFEs. |
| model_aware_trust_shrinkageopt | BOOLEAN | false | Experimental research/reproduction switch for model_aware_mode='full'. The supported default is false and current native ER-SDE perceptual A/B testing does not recommend promotion. Offline replay keeps the rejected causal-kappa transfer disabled and uses shadow-only diagnostics. No transformer evaluation is added. |
| model_aware_replay_generic_correctionopt | BOOLEAN | false | Offline replay-only legacy/ablation switch for model_aware_mode='full'. False is the supported default: do not transplant the causal PR #39 latest-delta scalar onto the different future-bracket replay direction. True explicitly restores that old replay transfer for regression/scientific reproduction. The causal PR #39 correction, validation attenuation, local/spectral blending, scheduling, and transformer NFE are unchanged. |
| generic_correction_modeopt | COMBO | coordinate_rls | Full-mode correction controller. coordinate_rls is the validated default from three-run hidden-space and decoded-media ER-SDE evidence. Legacy retains the exact previous EWMA path for reproduction. Regional mode remains experimental. No mode adds a transformer evaluation. |
| generic_correction_limiteropt | COMBO | hard_clip | Generic-correction gain limiter. hard_clip with limit 0.40 is the validated full-mode default. rational with 0.25 remains the exact legacy reproduction setting. |
| generic_correction_limitopt | FLOAT | 0.400.01–1 | Symmetric gain-limit scale. 0.40 is validated with coordinate_rls/hard_clip; use 0.25 with legacy/rational/mode_default for the previous exact baseline. |
| generic_correction_attenuationopt | COMBO | no_attenuation | Full-mode attenuation policy. no_attenuation is the validated coordinate_rls default. mode_default with legacy exactly preserves the previous correction path. This setting adds no transformer evaluation. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |