H3 RF · Base Descent Only (T8 EXP)
Set Up the First Pass So You Can Actually Freeze It
- model
- av_latent
- sigmas
- model
- sampler
- sigmas
- stage_context
- report_json
The RF recipe is a two-descent workflow: run H3 down a full schedule, then take the endpoint, re-noise it partway back up, and run a short second descent for detail. It's the same instinct as an img2img second pass, except the intermediate state never leaves latent space, so nothing gets crushed through a VAE and back.
This node is the first descent. Only the first. The name is not being clever with you.
What it does
You hand it a MODEL, an un-sampled AV latent, and a SIGMAS table, and it returns a re-hung MODEL, a SAMPLER, SIGMAS and a stage_context, plus a report. No sampling happens here - it's a setup node, so your SamplerCustomAdvanced still does the work.
The interesting part is what it preserves. H3 is a joint audio/video model, which means video and audio are denoised on two different noise clocks at once. The two float inputs are where you set that:
- shift_video (default 12) and shift_audio (default 3) - the per-stream sigma shift for this descent. These defaults match the settings the pack's own workflows use; changing one without the other is how people end up with audio that drifts out of sync with picture.
It's called explicit full/partial/tail SIGMAS because the descent has no hidden restart bolted on the end. Whatever schedule you hand in is the schedule that runs. If you want a partial descent, you cut the table yourself.
The second thing it preserves is sneakier and it's the whole reason the node exists: the stage keeps the original template and the exact model-space endpoint before ComfyUI's float32 output boundary rounds it. That's what makes a "frozen restart" honest - the restart re-noises the real endpoint, not a lossy copy of it.
Wiring it
Base descent → RF · Endpoint + Original Template (the handoff node) → RF Restart Stage Setup → second SamplerCustomAdvanced. The restart joint-clock variant is the one you want if audio is involved, for reasons below.
Bias, STG, Prompt Relay and EAV stay external - put those patches in the graph, don't expect this node to carry them. But note the order: the RF stage records the Bias/STG configuration that was present when Setup ran, and errors with RF stage Bias/STG configuration changed after Setup if it mutates later. Add your detail effects before this node.
examples/workflows/62-rf-restart-split/ ships twelve graphs across three entry points, with minimal, effects, save_effects and resume_effects variants - the base, handoff and restart nodes each independently visible and connectable.
Install
Manager, search MiniMax H3 Audio T8. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
Restart ComfyUI completely, then refresh the tab. The pack's requirements.txt deliberately installs no Python packages; you need a recent ComfyUI with native H3 support, H3 weights in models/diffusion_models, the Qwen text encoder in models/text_encoders, and the video/audio VAEs in models/vae.
The audio trap worth knowing about
RF re-noises the completed endpoint per stream before the restart descent. On the older compatibility path, the generic dual-clock Euler initialisation then ran a second audio rebase on an already-initialised audio stream. With shifts of 12/3 and a restart video sigma of 0.15, that second pass scaled audio by roughly 0.28× again - visible in the numbers as an audio latent standard deviation dropping to about 0.10 where the source base sat near 0.36.
The fix is a separate node that marks the state as already dual-clock initialised. If you're assembling a restart by hand and your audio comes out thin or quiet relative to the base pass, that's the first thing to look at. The pack's own note is refreshingly precise about the limits of the evidence too: getting the standard deviation back near the base proves the double-scaling is gone, not that it sounds right.
If a node shows up red or the model refuses to load, check docs/README_DETAILS_ZH.md in the pack first - it's the author's troubleshooting page, and most H3 breakage is a model in the wrong folder or a Core that's too old for native H3.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| av_latent | LATENT | — | |
| sigmas | SIGMAS | — | |
| shift_video | FLOAT | 12.000.01–100 | — |
| shift_audio | FLOAT | 3.000.01–100 | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| sampler | SAMPLER | — |
| sigmas | SIGMAS | — |
| stage_context | T8_STAGE_CONTEXT | — |
| report_json | STRING | — |