Nodes/ComfyUI-MiniMax-H3-LongMedia/MiniMaxH3LatentLabRefineSigmas
ComfyUI Node

MiniMaxH3LatentLabRefineSigmas

Cut your sigma schedule in two so the refine tail doesn't fight the base pass

By vizart-vj·Created 14 days ago·Updated 2 days ago· 71
MiniMaxH3LatentLabRefineSigmas
  • sigmas
  • main_sigmas
  • refine_sigmas
  • total_steps
  • switch_step
  • refine_steps_effective
  • report
refine_steps2

The Long Media Sampler's recommended production setting is refine_enabled with 2 refine steps: run the main denoise pass, then a few extra low-noise steps to polish detail. The trick is that "extra steps" isn't magic - it's a sigma-schedule surgery. Something has to take your connected SIGMAS and split them into a main chunk and a refine tail, or the sampler would just re-run the whole schedule. RefineSigmas is that splitter, exposed as a standalone node for people building the two-stage flow by hand.

What it does

Two inputs, six outputs:

  • sigmas - your full schedule (from any sigma scheduler).
  • refine_steps (default 2) - how many of the final low-noise steps get carved off as the refine tail.

Outputs:

  • main_sigmas - the bulk of the schedule, up to the split point.
  • refine_sigmas - the low-noise tail.
  • total_steps, switch_step - where the split landed in step terms.
  • refine_steps_effective - what the refine tail actually contains (the effective count, since schedules are discrete).
  • report - a JSON breakdown: sigma values at the start and end of each half, the scheduler source, and the intervals math.

Wire main_sigmas into the main sampling stage, refine_sigmas into the refine stage, and you've got a faithful base/refiner split without running the same denoise twice.

The honest caveats

Two things the output report makes explicit. First, main_return_with_leftover_noise is true - the main pass hands off with leftover noise rather than a fully clean latent, which is what makes the refine a continuation rather than a fresh generation. Second, refine_add_noise is false - the refine stage adds no fresh noise. It continues the same trajectory. That's the whole philosophy of the pack's refine: it's the tail of one schedule, not a separate seed'd pass. If you were imagining refine-as-second-seed, this node is the reality check.

When to use it

You normally don't. The Long Media Sampler does this split internally whenever refine_enabled is on, and its refine_steps input is the same knob. This node exists for the manual diagnostic route - building the two-stage sampler graph explicitly, feeding main_sigmas and refine_sigmas into two sampling stages, and inspecting the split with the report when you're debugging why your refine tail isn't doing what you expected. It's also handy for A/B testing: run with refine at 2 steps vs 4 and the report tells you exactly how many low-noise steps each actually ran.

Install

Ships in ComfyUI-MiniMax-H3-LongMedia. Manager search "MiniMax-H3-LongMedia", or:

cd ComfyUI/custom_nodes
git clone https://github.com/vizart-vj/ComfyUI-MiniMax-H3-LongMedia

restart, with the H3 weights available for the sampling that follows (MiniMaxAI/MiniMax-H3, ~42.5 GB, community license excludes US/EU/UK/Korea).

Troubleshooting

If refine_steps_effective comes back smaller than you asked, your full schedule was too short to carve off that many low-noise steps - raise total steps or lower refine_steps. If the refined output looks unchanged, check that refine_sigmas is actually feeding a second sampling stage and that you're not just discarding it. And if the seam between main and refine shows a jump, remember this node is only the schedule splitter - the seam protection lives in ProtectRefineAV, which is the other half of this two-stage pipeline.

CategoryMiniMax H3/LongMedia/LongMedia

Inputs (2)

NameTypeDefaultDescription
sigmasSIGMAS
refine_stepsINT21–1000

Outputs (6)

NameTypeDescription
main_sigmasSIGMAS
refine_sigmasSIGMAS
total_stepsINT
switch_stepINT
refine_steps_effectiveINT
reportSTRING