MiniMax H3 Scheduled Audio Ref
Give one scene a voiceover without renumbering every reference
- audio
- previous
- schedule
- schedule_fingerprint
- status
Scheduling references per scene in H3 has a nasty failure mode: native labels are positional. Add a picture at the front of your chain and every <Audio 2> in your prompts silently points at the wrong track. This node is the fix - you tag your audio once with a stable alias like @voice, say which scenes it's active in, and let the scheduler renumber <Audio N> labels per scene so your prompt text never goes stale.
What it does
Connect your audio, give it a tag (a stable alias such as @voice - note it is not a native Audio number), and set scenes - blank for all scenes, or selectors like 1, 1:4, 1,3,5:8. Then chain it into the rest of your scheduled references via previous (priority order only; it never fixes a permanent native label).
Two outputs matter:
- schedule - the reference schedule to chain into another entry or into Scheduled Ref2VA.
- schedule_fingerprint - a SHA-256 of all sources, tags, and selectors, for checkpoint safety.
The renumbering is the core idea: only audio references active in the current scene consume <Audio N> numbers, and they're numbered compactly from <Audio 1> each scene. So if an earlier track is removed or goes inactive, @voice still compiles to the right native number wherever it's used. That's the whole reason tags exist.
A couple of sharp edges. This node inserts no text into your prompt - you write @voice in the Plan prompt yourself, and the scheduler only resolves the alias at compile time. And for a video's synchronized soundtrack, don't use this node: use the paired audio socket on Scheduled Video Ref instead, which keeps the track index-paired with its video.
Install and gotchas
cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMaxH3-Contex-Loop.git
Restart, or install via ComfyUI Manager under "MiniMax H3 Contex Loop". No pip dependencies; a current ComfyUI with native Add Guide (PR #15439) is expected. Models aren't bundled - see the MiniMax H3 Community License for the territory restriction.
The classic gotcha is treating the tag suffix as a fixed native number. @voice is a convenience, <Audio 1> is whatever this scene says it is. If a checkpoint verify fails after you add an earlier reference, that's the scheduler working as intended - active changes invalidate dependent scenes, and future-only additions shouldn't.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | Standalone reference audio. For a video's synchronized soundtrack, use the paired audio socket on Video Schedule instead. | |
| tag | STRING | voice | Stable alias such as @voice. It is NOT a native Audio number. Active audio references are renumbered from <Audio 1> per scene, so the @tag survives earlier entries being removed or inactive. |
| scenes | STRING | Scenes where this audio reference is active. Blank means all; use 1, 1:4, or 1,3,5:8. Only active audio references consume <Audio N> numbers. | |
| previousopt | H3_REFERENCE_SCHEDULE | Optional preceding scheduled reference chain. It sets stable priority order, not permanent native label numbers. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| schedule | H3_REFERENCE_SCHEDULE | Reference schedule to chain into another entry or Scheduled Ref2VA. |
| schedule_fingerprint | STRING | SHA-256 of all sources, tags, and selectors for checkpoint safety. |
| status | STRING | Normalized tag, scene selector, entry count, and fingerprint. |