Nodes/IAMCCS-nodes/MiniMax H3 · R42 / Continuous AV / Guided Loop Lazy Router
ComfyUI Node

MiniMax H3 · R42 / Continuous AV / Guided Loop Lazy Router

Four H3 continuity engines on one graph, only one of them ever runs

By IAMCCS·Created 11 months ago·Updated about 17 hours ago· 113
MiniMax H3 · R42 / Continuous AV / Guided Loop Lazy Router
  • cine_linx
  • r42_frames
  • r42_audio
  • r42_bridge
  • r42_latent
  • continuous_frames
  • continuous_audio
  • continuous_bridge
  • continuous_latent
  • guided_frames
  • guided_audio
  • guided_bridge
  • guided_latent
  • latentgoahead_frames
  • latentgoahead_audio
  • latentgoahead_bridge
  • latentgoahead_latent
  • frames
  • audio
  • bridge
  • sampled_latent
  • fps
  • report
  • current_segment
  • total_segments
  • trim_head_frames
r42_fps
r42_report
continuous_fps
continuous_report
guided_fps
guided_report
latentgoahead_fps
latentgoahead_report
r42_current_segment
r42_total_segments
r42_trim_head_frames

Four different continuity strategies live in this pack for long H3 video, and they do not want to share a graph. Each one proposes its own handover of the previous take, and running two of them in one execution is how you get two renders of the same shots and a delivery with duplicated frames in it.

The usual solution is a group mute. The better solution is this node. IAMCCS_MiniMaxH3ContinuousBackendLazyRouterR42 is a selector that reads which task mode the Shotboard plan is actually set to and asks ComfyUI to evaluate only that branch - the other three never execute, because their input sockets are lazy and check_lazy_status never asks for them.

Wiring

You feed all four candidate backends into their own prefixed sockets. Each prefix takes the same six things the continuity backends return:

  • r42_frames, r42_audio, r42_bridge, r42_latent, r42_fps, r42_report
  • continuous_* - the FL2VA Continuous AV chain
  • guided_* - the experimental one-master-latent Guided AV Loop
  • latentgoahead_* - LatentGoAhead
  • plus r42_current_segment, r42_total_segments, r42_trim_head_frames

The router returns frames, audio, bridge, sampled_latent, fps, report, and that same trio of segment counters. So downstream nodes - a preview strip, an exporter, a save - see a single stable set of sockets no matter which engine ran.

How it picks

It resolves the shot plan and reads two fields: task_mode and requested_task_mode. The mapping:

  • latent_go_ahead → the LatentGoAhead branch
  • guided_av_loop_experimental (or the legacy longvid_guided_av_loop_experimental) → the guided branch
  • longvid_masked_loop_guided, masked_loop_guided, long_masked_loop_guided → the continuous branch
  • anything else → the established R42 standard / Motion Context path

The log line names the engine it chose, which is the first thing to check when a run used the wrong strategy.

Here's the subtle part. For the three non-R42 branches, the router returns current_segment = 0, total_segments = 1, trim_head_frames = 0 - regardless of what those branches reported internally. That's not a bug, it's the contract: Continuous AV, Guided AV Loop and LatentGoAhead each render their entire authored programme inside one outer execution, so their technical windows are internal. If the router passed their real segment counts through, R42's queue-next machinery would arm and start enqueueing segments for a programme that is already being rendered whole. You'd get a duplicate film.

When a branch is missing

You get a named list rather than a mystery:

R42 continuity lazy branch is incomplete: guided_frames, guided_audio, ...

That's the router telling you the selected mode expects a backend that isn't wired. Easy fix, and worth reading literally - it's usually that you enabled a new task mode in H3 Settings and didn't connect the corresponding node.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

Manager search IAMCCS also works; restart after. The router itself has no external dependencies and no models - everything heavy belongs to whichever backend it selects, and you only pay for the one that runs. That is the whole reason this pattern exists rather than four parallel branches with a switch node: with an ordinary switch, ComfyUI evaluates every connected upstream node before the switch decides anything.

The other thing to internalise: because each backend plugs into its own prefix, you can wire all four once and then change strategy from the settings panel for the rest of the project. No rewiring, no group-muting, no accidentally leaving two engines armed.

CategoryIAMCCS/MiniMax H3/Continuity

Inputs (28)

NameTypeDefaultDescription
cine_linxIAMCCS_SUPERNODE_LINX
r42_framesoptIMAGE
r42_audiooptAUDIO
r42_bridgeoptIMAGE
r42_latentoptLATENT
r42_fpsoptINT
r42_reportoptSTRING
continuous_framesoptIMAGE
continuous_audiooptAUDIO
continuous_bridgeoptIMAGE
continuous_latentoptLATENT
continuous_fpsoptINT
continuous_reportoptSTRING
guided_framesoptIMAGE
guided_audiooptAUDIO
guided_bridgeoptIMAGE
guided_latentoptLATENT
guided_fpsoptINT
guided_reportoptSTRING
latentgoahead_framesoptIMAGE
latentgoahead_audiooptAUDIO
latentgoahead_bridgeoptIMAGE
latentgoahead_latentoptLATENT
latentgoahead_fpsoptINT
latentgoahead_reportoptSTRING
r42_current_segmentoptINT
r42_total_segmentsoptINT
r42_trim_head_framesoptINT

Outputs (9)

NameTypeDescription
framesIMAGE
audioAUDIO
bridgeIMAGE
sampled_latentLATENT
fpsINT
reportSTRING
current_segmentINT
total_segmentsINT
trim_head_framesINT