Nodes/comfyui-minimax-h3-audio-T8/FastH3 V2 · Accepted Timeline Relay Window (T8 EXP)
ComfyUI Node

FastH3 V2 · Accepted Timeline Relay Window (T8 EXP)

Sliding a Relay plan onto the accepted frame clock

By T8mars·Created 2 months ago·Updated about 7 hours ago· 1,158
FastH3 V2 · Accepted Timeline Relay Window (T8 EXP)
  • contexts
  • global_plan
  • projected_plan
  • compiled_prompt
  • report_json
◄length124►
◄accepted_end_frame0►

What it is

Prompt Relay is the pack's segmented-prompt routing: you write one plan covering a long timeline, and Relay applies the right text to the right window of frames instead of smearing one prompt across everything. It's the mechanism that makes "she walks in, then the camera pulls back, then she speaks" work over a clip longer than the model's native window.

The trouble with continuing an accepted segment is that the plan's frame clock and your new render's frame clock aren't the same thing. Your continuation's frame 0 is actually frame 124 of the finished clip. Hand a global plan straight to the conditioner and it will happily annotate your segment using the wrong offsets - no error, just a prompt that arrives thirty frames late.

This node fixes that. It takes the external global plan, projects it using the selected accepted parent's exact timeline, and returns a plan annotated for the window you're about to render. Its output plugs into the separate LOW and HIGH native Long Video Relay conditioning calls.

How it works

Three required inputs and one optional:

  • contexts - the verified accepted-parent contexts; the parent's timeline is what everything is projected against.
  • global_plan - the external plan covering the whole clip.
  • length - the render window you're projecting into. Default 124, minimum 5, step 17, i.e. the same 5 + 17n grid H3 renders on.
  • accepted_end_frame (optional, default 0) - where the accepted frames end on the timeline.

Outputs: projected_plan (the type the Relay conditioner wants), compiled_prompt (the human-readable result - genuinely the fastest way to check the projection is sane), and report_json.

Read compiled_prompt before you queue. It's a string you can eyeball in a text preview node, and it shows you which text landed on which segment of the window. If your prompt is offset by the context frames, you'll see it here instead of in a finished render.

The profile catch

There's a hard interaction with the stage profile, and it's the one people trip over. On FastH3 V2, if Relay is active you need the dense compatibility profile. The trained VSA sparse path has no per-query temporal bias adapter yet, so Relay routing has nothing to attach to. Flipping the profile dropdown and assuming you now have sparse speed and Relay is a mistake that produces no error message at all - just a render where the prompt routing didn't happen, or happened via a path you didn't intend.

The pack is unusually direct about this, which is a mark in its favour. Most node ecosystems would let you build the combination and say nothing.

Where it fits

Continuation graph: accepted-context port → this node → the LOW/HIGH Relay conditioners (the provenance-emitting variants if you want receipts) → V2 stages. Note that the projection is per-window: if LOW and HIGH render different windows, project for each, or you'll be conditioning one of them with offsets from the other.

Install

ComfyUI Manager → 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

Fully restart ComfyUI and refresh the page - the pack's nodes register on import. Its requirements.txt is empty on purpose so nothing can replace ComfyUI's Torch/CUDA stack; the optional EXP features check their own dependencies when used. Prerequisites: a recent ComfyUI with native H3 support, H3 weights in models/diffusion_models, Qwen in models/text_encoders, both VAEs in models/vae, and the FastH3 V2 ConvRot INT8 checkpoint for the V2 chain.

Where it goes wrong

Wrong-typed global_plan - the projection wants a Relay plan, not a string or a conditioning. And contexts that come from an unaccepted chain will be rejected here, which is the accepted-parent guard doing its job.

The subtle failure is a plan whose segment boundaries don't land where you think once shifted onto the parent timeline. The projection is arithmetic, not judgement: it will faithfully map a plan that describes the wrong shot onto the right frames. compiled_prompt is your sanity check, and it's cheap - read it.

CategoryT8/MiniMax H3/Modular Sampling/Continuation Experimental

Inputs (4)

NameTypeDefaultDescription
contextsT8_CONTINUATION_STAGE_CONTEXTS—
global_planH3_T8_PROMPT_RELAY_PLAN—
lengthINT124—
accepted_end_frameoptINT00–10000000—

Outputs (3)

NameTypeDescription
projected_planH3_T8_PROMPT_RELAY_PLAN—
compiled_promptSTRING—
report_jsonSTRING—