Nodes/ComfyUI-Spectrum-MiniMax-H3/Spectrum Apply MiniMax H3
ComfyUI Node

Spectrum Apply MiniMax H3

Skip most of the MiniMax H3 transformer — and usually keep the video

By xmarre·Created 22 days ago·Updated a day ago· 566
Spectrum Apply MiniMax H3
  • model
  • model
enabledtrue
blend_weight0.50
degree1
ridge_lambda0.10
window_size2.00
flex_window0.75
warmup_steps1
tail_actual_steps1
max_history8
debugfalse
history_storagesystem_ram
bootstrap_first_forecasttrue
anchor_residual_feedbackfalse
selective_rollback_correctionfalse
offline_smoothing_replaytrue
audio_blend_weight0.00
offline_archive_storagesystem_ram
model_aware_modeoff
model_aware_risk_threshold0.65
model_aware_trust_shrinkagefalse
model_aware_replay_generic_correctionfalse
generic_correction_modecoordinate_rls
generic_correction_limiterhard_clip
generic_correction_limit0.40
generic_correction_attenuationno_attenuation

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, default 0.5. This is your "how aggressive" dial.
  • warmup_steps and tail_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_history and history_storage - how many actual anchors are kept and where (system_ram vs vram). Large H3 hidden histories can eat multiple GiB, so keep system_ram unless 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_replay setting.
  • 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.

Categorysampling/spectrum

Inputs (26)

NameTypeDefaultDescription
modelMODEL
enabledBOOLEANtrue
blend_weightFLOAT0.500–1Direct 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.
degreeINT11–16Polynomial degree. Values other than 1 disable bootstrap_first_forecast.
ridge_lambdaFLOAT0.100–10
window_sizeFLOAT2.001–16
flex_windowFLOAT0.750–8
warmup_stepsINT10–64Initial native solver steps. Values above 1 disable bootstrap_first_forecast.
tail_actual_stepsINT10–64Requested 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_historyINT82–64
debugBOOLEANfalse
history_storageoptCOMBOsystem_ramStorage for the bounded causal history, capped by max_history. Offline replay uses the separate offline_archive_storage setting.
bootstrap_first_forecastoptBOOLEANtrueForecast 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_feedbackoptBOOLEANfalseExperimental video-scored actual-refresh guard; never injects a hidden residual. Disable offline_smoothing_replay before enabling this mode.
selective_rollback_correctionoptBOOLEANfalseExperimental thresholded, budgeted rollback for the reviewed deterministic Euler sampler only. Disable offline_smoothing_replay before enabling this mode.
offline_smoothing_replayoptBOOLEANtrueCompatibility-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_weightoptFLOAT0.000–1Direct 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_storageoptCOMBOsystem_ramStorage 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_modeoptCOMBOoffExperimental 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_thresholdoptFLOAT0.650–1Advanced threshold for converting a prospective forecast into an actual model evaluation. Lower values are more conservative and may spend more NFEs.
model_aware_trust_shrinkageoptBOOLEANfalseExperimental 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_correctionoptBOOLEANfalseOffline 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_modeoptCOMBOcoordinate_rlsFull-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_limiteroptCOMBOhard_clipGeneric-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_limitoptFLOAT0.400.01–1Symmetric 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_attenuationoptCOMBOno_attenuationFull-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)

NameTypeDescription
modelMODEL