Nodes/IAMCCS-nodes/AU+IMG2VID Audio Timeline (legacy alias)
ComfyUI Node

AU+IMG2VID Audio Timeline (legacy alias)

Trim the right slice of audio for the segment you're about to generate

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
AU+IMG2VID Audio Timeline (legacy alias)
  • audio
  • parent_contract
  • linx
  • audio_payload
  • contract
  • linx
  • conditioning_audio
  • segment_audio
  • continue_generation
  • effective_unique_frames
  • trim_frames
  • report
planner_payload{}
modeleft_context_only
left_overlap_s0.50
right_overlap_s0.00
clamp_policysoft_clamp
min_next_frames1

Audio-guided video generation has a subtle problem: your model takes one segment's worth of audio as conditioning, but a long track is way too much to feed it at once. You need the right slice - enough context for the current segment, trimmed so the model doesn't drown. IAMCCS_AUIMG2VID_AudioTimeline (a legacy alias for Ltx2HelperModules_AudioTimeline) is the node that does that slicing.

It takes three things: the planner_payload from your planner (which defines the current segment's frame range), the full audio track, and the mode that says how much context to grab around the segment. The modes are left_context_only, right_context_only, symmetric_context, and no_overlap. For a video segment, the audio you care about is usually the segment itself plus a little lead-in (left_context_only is the default), because the model is generating the segment forward. Set left_overlap_s / right_overlap_s to control the seconds of context on each side - 0.5s of left context is a sane starting point.

It returns a segment_audio (the slice for this segment) and a conditioning_audio (the context slice), so you can wire the segment to your sampler's audio input and the conditioning to whatever node wants the surrounding context separately. Two more outputs matter for the loop: continue_generation (a boolean the planner/gate uses to decide whether more segments remain) and effective_unique_frames (how many genuinely-new frames this segment represents after trimming overlap). clamp_policy (soft_clamp vs strict) controls what happens when the requested context runs past the start or end of the audio - soft clamps it gracefully, strict errors - and min_next_frames sets the floor for deciding a next segment is worth it.

Where this fits: in the AU+IMG2VID chain, it sits right after the planner and before sampling. The planner decides the segment plan, this node turns it into actual audio slices, and the continuity/refresh nodes handle the video side of the overlap. It's also usable standalone if you're building your own audio-conditioned chunk loop and just want reliable trimming.

Installing: one node in IAMCCS/IAMCCS-nodes - ComfyUI Manager → search "IAMCCS", or cd ComfyUI/custom_nodes && git clone https://github.com/IAMCCS/IAMCCS-nodes.git, restart. No models, no extra deps; the slicing is sample math over the AUDIO tensor.

The trap here is forgetting that the slice only covers the current segment's range. If you feed this node's conditioning_audio to a node expecting the whole track, your video will quietly condition on a 1-second blip. And if your planner_payload is {} (the default) because you never connected the planner, the node has no frame range to work from - that empty-payload default is a common source of "why is my audio slice empty?" moments. Connect the payload, read the report, and the slicing becomes boringly correct.

CategoryIAMCCS/Ltx2 Helper Modules

Inputs (9)

NameTypeDefaultDescription
planner_payloadSTRING{}
audioAUDIO
modeCOMBOleft_context_only4 options: left_context_only, right_context_only, symmetric_context, no_overlap
left_overlap_sFLOAT0.500–30
right_overlap_sFLOAT0.000–30
clamp_policyCOMBOsoft_clamp2 options: soft_clamp, strict
min_next_framesINT11–100000
parent_contractoptIAMCCS_SUPERNODE_CONTRACT
linxoptIAMCCS_SUPERNODE_LINX

Outputs (9)

NameTypeDescription
audio_payloadSTRING
contractIAMCCS_SUPERNODE_CONTRACT
linxIAMCCS_SUPERNODE_LINX
conditioning_audioAUDIO
segment_audioAUDIO
continue_generationBOOLEAN
effective_unique_framesINT
trim_framesINT
reportSTRING