MiniMax H3 AV Sigma Same-NFE / 音画同NFE重分布 (Advanced)
Reshape the sigma schedule without changing the step count
- sigmas
- sigmas
- actual_nfe
- report_json
Here's a scheduling trick people learn the hard way: you can spend the exact same number of model calls and get a different result, just by deciding where in the denoising process those calls land. MiniMaxH3AVSigmaSameNFERedistributionT8Advanced is that trick as a node - it keeps the joint audio-video model-call count (the NFE) and the endpoints untouched, but optionally slides the existing sigma points around in base-flow time. And it defaults to report_only, so nothing changes until you say so.
The name is the whole contract. "Same-NFE" means you're not adding steps - actual_nfe output will match what you started with. "Redistribution" means the node takes the sigma knots your scheduler produced and re-weights their spacing. tail_power is the dial: 1.0 is exact identity (a no-op pass-through), and values above 1.0 pull existing points toward the zero-sigma tail - which is where fine detail and final audio texture actually get resolved in flow-matching samplers.
Why you'd bother
H3's joint transformer generates video and audio together, but the two modalities don't necessarily want the same sigma cadence. The node carries separate shift_video (12) and shift_audio (3) defaults, which is a hint: video likes its points one way, audio another, and the dual-clock sampling route (dual_clock_euler) is where this experiment is meant to live. If you suspect your output is under-resolved in the tail - motion micro-jitter, audio that sounds slightly soft - a redistribution that packs more of the existing steps into the end of the schedule is the cheap experiment to try before adding NFE you don't have.
The inputs that matter
- sigmas in, sigmas out - it's a drop-in between your scheduler and sampler.
- mode -
report_only(default) prints what it would do; flip to apply when you're ready. - start_progress (0.5) - where in the schedule redistribution begins. Below that, knots stay put.
- tail_power (1.6) - the strength of the pull toward zero. 1.0 = identity.
- profile (
turbo_standard8) and accept_turbo_schedule_ood - the honest part. The author validated the Turbo dual-clock path with an 8-step baseline, and adding untrained intermediate times to an 8-step Turbo schedule is out-of-distribution by definition. That's why the accept flag exists: you have to consciously acknowledge you're pushing a Turbo schedule past what it was trained for.
Outputs: the reshaped sigmas, an actual_nfe you can verify stayed the same, and report_json. It sits in T8/MiniMax H3/Quality/Experimental next to its two schedule siblings - this one is "same NFE, different placement," while the other two add steps to the tail.
Install
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8
Restart ComfyUI. No extra dependencies, no model files - pure schedule math. Run it in report_only on your current workflow first, eyeball actual_nfe and the sigmas output, then decide if the tail pull is worth an A/B. And keep the expectations honest: this is an experiment, not a magic quality knob. The pack's own documentation is careful to call these unvalidated outside the fixed test cases.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas | SIGMAS | — | |
| mode | COMBO | report_only | 2 options: report_only, apply_exp |
| start_progress | FLOAT | 0.500–0.99 | — |
| tail_power | FLOAT | 1.600.2–5 | 1.0 is exact identity; values above 1 move existing points toward the zero-sigma tail. |
| shift_video | FLOAT | 12.000.01–100 | — |
| shift_audio | FLOAT | 3.000.01–100 | — |
| profile | COMBO | turbo_standard8 | 5 options: turbo_standard8, turbo_ema8, turbo_fl2v8, stock20, custom_strict |
| sampling_route | COMBO | dual_clock_euler | 4 options: dual_clock_euler, native_flow_av_unverified, multirate_exp_unsupported, unknown |
| accept_turbo_schedule_ood | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | — |
| actual_nfe | INT | — |
| report_json | STRING | — |