Nodes/ComfyUI_Fill-Nodes/FL Audio Shot Iterator
ComfyUI Node

FL Audio Shot Iterator

Pull one shot's metadata at a time from a music-video sequence

By filliptm·Created 3 years ago·Updated about 17 hours ago· 628
FL Audio Shot Iterator
    • frame_count
    • start_frame
    • end_frame
    • start_beat
    • beat_count
    • start_time
    • duration
    • is_last_shot
    • total_frames
    sequence_json
    shot_index0

    This node pairs with FL_Audio_Music_Video_Sequencer, which builds a full shot list for a music video from beat positions - pattern-based orchestration across A/B/C/D shot patterns, per the pack's own description - packaged as one JSON blob. FL_Audio_Shot_Iterator is the "give me shot #N" lookup: pass it that sequence JSON and an index, and it hands back every field you need to render exactly that shot.

    How it works

    It's a pure lookup node - no analysis, no generation, just reading one entry out of a larger sequence structure by index. That keeps the concerns cleanly separated: the sequencer decides what the shots are and where they fall, once, for the whole track; this node just lets you pull one shot's worth of metadata at a time so you can drive a render loop per shot without re-deriving anything.

    The inputs and outputs that matter

    Required: sequence_json - from FL_Audio_Music_Video_Sequencer; shot_index (0–10000, default 0 - 0-indexed).

    Outputs, all describing the same shot from different angles: frame_count, start_frame, end_frame (INT - the video-frame window); start_beat, beat_count (INT - the same window expressed in beats); start_time, duration (FLOAT - the same window in seconds); is_last_shot (BOOLEAN - true once you've reached the final shot, your signal to stop iterating); total_frames (INT - the whole sequence's total length, available regardless of which shot you're currently on).

    How to install it

    ComfyUI Manager: search ComfyUI_Fill-Nodes, install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
    

    then restart. This node is a plain JSON lookup - no extra dependencies of its own.

    Common issues & troubleshooting

    Building the render loop. ComfyUI's base graph doesn't have a native for-loop, so the practical pattern is either driving shot_index with a loop-capable node from elsewhere in your setup, or duplicating the render chain per shot for a short edit with a small, fixed number of shots. Either way, check is_last_shot as your stopping condition rather than assuming a fixed shot count in advance - sequences generated with different pattern configs won't all have the same number of shots.

    shot_index past the end of the sequence. The field accepts values up to 10000 as a hard schema ceiling, but the real limit is however many shots your specific sequence actually has. Test against is_last_shot rather than assuming any particular count.

    Shot boundaries look wrong. This node only reads what FL_Audio_Music_Video_Sequencer already decided - if a shot's timing or length looks off, the fix is in the sequencer's pattern configuration upstream, not here. This node has no parameters that would change shot boundaries even if you wanted them to.

    Category🏵️Fill Nodes/Audio

    Inputs (2)

    NameTypeDefaultDescription
    sequence_jsonSTRING
    shot_indexINT00–10000

    Outputs (9)

    NameTypeDescription
    frame_countINT
    start_frameINT
    end_frameINT
    start_beatINT
    beat_countINT
    start_timeFLOAT
    durationFLOAT
    is_last_shotBOOLEAN
    total_framesINT