[Advanced/Diagnostic] MiniMax H3 RefDelta Sampler
The original RefDelta sampler, now wearing a lab coat
- sampler
What this is
This is the original MiniMax H3 RefDelta sampler, the one the pack shipped before the streamlined production node existed. Today the display name says it plainly: [Advanced/Diagnostic]. It's the same ER-SDE sampler machinery underneath, but with every knob exposed - including the diagnostic capture controls and the controller-mode switch that the production node deliberately hides.
So the honest framing: for normal generation, use MiniMax H3 RefDelta Stability Sampler. Reach for this one when you're doing A/B experiments, manual controller tuning, or running the diagnostic capture that feeds the Comparison Replay workflow.
Why it still exists
Saved workflows. When v0.3.0 shipped the production preset, the author had a choice: silently change the default behavior of every old workflow, or keep the original node ID and its released defaults intact. They kept the old defaults. That means this node's minimum_stochastic_multiplier defaults to 0.25 and trajectory_correction to false - the older, less-tuned values - on purpose. Don't read those as the recommended settings. They're the compatibility settings.
The extra knobs you get here
The full production control set is present (stability map thresholds, gamma, EMA, radii, correction strengths, and so on), plus two things the production node removes:
stochastic_control_mode- picklegacy_global(the released packed-scalar behavior, the default),streamwise, orspatiotemporal_stability(the controller the production node uses). This is how you A/B the controller itself.calibration_capture+calibration_id- disk-backed diagnostic capture. Turn this on and the sampler writes exact packed states, x0 values, sigmas, actual/forecast classification and telemetry underComfyUI/output/refdelta_calibration/<calibration_id>/. This is Pass 1 of the three-pass comparison workflow.
The rest - adaptive_order, risk_sensitivity, stochastic_adaptation_strength, s_noise, max_stage, debug_telemetry, debug_stability_maps - matches the production node's inputs.
The strict stock baseline
This is the neat trick: with everything disabled, it delegates straight to ComfyUI's native sample_er_sde, so it doubles as a clean ER-SDE reference. For a strict stock baseline set:
adaptive_order = false
stochastic_adaptation_strength = 0
trajectory_correction = false
debug_telemetry = false
calibration_capture = false
That path is byte-for-byte stock ER-SDE, no instrumentation, no adaptation. Useful when you want to know whether any difference in output is the controller or the sampler family itself.
Wiring and install
Output is a single SAMPLER; plug it into the sampler socket of a KSampler or SamplerCustomAdvanced. Install is the shared pack path:
cd ComfyUI/custom_nodes
git clone https://github.com/xmarre/ComfyUI-MiniMax-H3-RefDelta-Solver.git
Restart ComfyUI. No pip dependencies (the pack's pyproject.toml lists none), though you do need the fused checkpoint from HuggingFace (xmarre/MiniMax-H3-Pruned-Ref-Delta-Fused-r1024-ComfyUI) - a full H3 model, not a LoRA - and the usual BasicScheduler with beta for scheduling.
Common issues
- You're probably on the wrong node. If you just want to generate, the Production/Stability Sampler is the validated path. This node's defaults are deliberately older. Same-seed testing shows the two are behaviorally identical when configured with the same values, so it's UX and defaults, not secret sauce.
- Capture writes disk files. Leaving
calibration_captureon during normal generation dumps a calibration dir every run. It's cheap, but it cluttersComfyUI/output/and you'll forget it's on. Switch it off unless you're building a comparison pass. - The license reminder. The MiniMax-H3 weights this targets are territory-restricted (US, EU, UK, South Korea excluded) under the H3 Community License - worth checking before you plan a workflow around them.
Inputs (34)
| Name | Type | Default | Description |
|---|---|---|---|
| adaptive_order | BOOLEAN | true | — |
| risk_sensitivity | FLOAT | 1.000–4 | — |
| stochastic_adaptation_strength | FLOAT | 0.500–1 | — |
| minimum_stochastic_multiplier | FLOAT | 0.250–1 | — |
| trajectory_correction | BOOLEAN | false | — |
| video_correction_strength | FLOAT | 0.150–1 | — |
| audio_correction_strength | FLOAT | 0.050–1 | — |
| correction_bound | FLOAT | 0.500–2 | — |
| endpoint_fidelity_fraction | FLOAT | 0.150–0.5 | — |
| s_noise | FLOAT | 1.000–2 | — |
| max_stage | INT | 31–3 | — |
| debug_telemetry | BOOLEAN | false | — |
| telemetry_prefix | STRING | refdelta_trajectory | — |
| calibration_capture | BOOLEAN | false | — |
| calibration_id | STRING | refdelta_calibration | — |
| stochastic_control_mode | COMBO | legacy_global | 3 options: legacy_global, streamwise, spatiotemporal_stability |
| video_stochastic_strength_scale | FLOAT | 1.000–2 | — |
| audio_stochastic_strength_scale | FLOAT | 1.000–2 | — |
| static_video_stochastic_adaptation_strength | FLOAT | 0.500–1 | — |
| video_stability_restore_strength | FLOAT | 1.000–1 | — |
| video_stability_motion_low | FLOAT | 0.0200–2 | — |
| video_stability_motion_high | FLOAT | 0.1000–2 | — |
| video_stability_diffusion_low | FLOAT | 0.0200–2 | — |
| video_stability_diffusion_high | FLOAT | 0.1500–2 | — |
| video_stability_diffusion_weight | FLOAT | 0.500–1 | — |
| video_stability_normalization_floor | FLOAT | 0.100.001–1 | — |
| video_stability_gamma | FLOAT | 1.000.25–4 | — |
| video_stability_spatial_radius | INT | 20–8 | — |
| video_stability_temporal_radius | INT | 20–8 | — |
| video_stability_ema | FLOAT | 0.700–0.99 | — |
| video_stability_start_fraction | FLOAT | 0.100–1 | — |
| video_stability_full_fraction | FLOAT | 0.300–1 | — |
| stochastic_gate_slew_limit | FLOAT | 0.000–1 | — |
| debug_stability_maps | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| sampler | SAMPLER | — |