Nodes/IAMCCS-nodes/IAMCCS Cine PromptRelay Timeline
ComfyUI Node

IAMCCS Cine PromptRelay Timeline

Turn 'at second 3 the camera pushes in' into PromptRelay segment data

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
IAMCCS Cine PromptRelay Timeline
    • global_prompt
    • local_prompts
    • segment_lengths
    • max_frames
    • report
    global_promptcinematic scene with natural motion and coherent camera movement
    timeline_data
    duration_seconds8.00
    frame_rate24
    ltx_round_modeup_8n_plus_1
    fallback_segments3

    ComfyUI-PromptRelay is the community's answer to one of LTX's core frustrations: the model takes a single global prompt, but long videos want "this happens, then that happens, at these moments." PromptRelay splits your video latent into segments and applies a different local prompt to each one, so the model gets a timeline instead of a one-liner. The catch is the format - you have to produce a list of segment lengths and a matching list of local prompts, and hand-building those so they add up to the exact 8n+1 frame count is exactly the kind of arithmetic that ends with a 400-frame latent and a 397-frame prompt list.

    IAMCCS Cine PromptRelay Timeline is that math, in node form. You describe the timeline in human terms; it returns local_prompts, segment_lengths, and max_frames that slot straight into a PromptRelay encode node.

    How it works

    You give it:

    • global_prompt - the scene-level prompt (passed through unchanged).
    • timeline_data - either JSON (segments/rows/timeline with seconds + prompt + optional camera) or pipe lines: seconds | local prompt | camera note.
    • duration_seconds and frame_rate - the shot.
    • ltx_round_mode - defaults to up_8n_plus_1, i.e. round the total frame count up to the LTX-legal 8n+1 form.
    • fallback_segments - if the timeline is empty, it fabricates that many evenly-spaced generic "cinematic beat n" segments so the graph still validates.

    Then it converts seconds to proportional frame lengths that sum exactly to max_frames (any rounding remainder is dumped onto the last segment so you never get a dangling frame), joins the local prompts with |, and hands you the pieces. Camera notes get appended to their segment's prompt automatically.

    The outputs that matter

    • local_prompts - pipe-separated, one per segment.
    • segment_lengths - comma-separated frame counts summing to max_frames.
    • max_frames - the rounded total; wire it to your latent builder.
    • global_prompt - passthrough.

    The report helpfully includes a connect_to field pointing at PromptRelayEncodeTimeline or PromptRelayEncode.

    Install

    It's in IAMCCS-nodes:

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

    or Manager → search IAMCCS. README floor: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8. To actually encode, you need ComfyUI-PromptRelay in custom_nodes - this node only produces the data.

    Where people get burned

    • It produces data, not conditioning. Forgetting the second pack is the classic failure: this node runs, prints a lovely report, and your video ignores it because there's no PromptRelay encode node in the graph.
    • Frame-sum drift. The node guarantees lengths add up to max_frames, but only if you feed that same max_frames into your latent builder. If your latent is built from a different rounding (say nearest vs up), the lengths won't match the latent again - which is exactly the mismatch PromptRelay complains about.
    • Camera notes that repeat. A camera note already in the prompt text gets appended anyway (the code checks case-insensitively and skips it - but only for exact substring matches). Keep notes short and distinct.
    • Zero search impressions, one-author tooling. The Cine family is documented mostly through tooltips and report outputs. For learning PromptRelay itself, the standalone ComfyUI-PromptRelay docs are better; this node is for the IAMCCS workflow specifically.
    CategoryIAMCCS/Cine/02 Single Generation

    Inputs (6)

    NameTypeDefaultDescription
    global_promptSTRINGcinematic scene with natural motion and coherent camera movement
    timeline_dataSTRINGEdited by the Cine PromptRelay timeline UI. JSON or lines: seconds | local prompt | camera note
    duration_secondsFLOAT8.000.01–36000
    frame_rateINT241–120
    ltx_round_modeCOMBOup_8n_plus_13 options: up_8n_plus_1, nearest_8n_plus_1, none
    fallback_segmentsINT31–32

    Outputs (5)

    NameTypeDescription
    global_promptSTRING
    local_promptsSTRING
    segment_lengthsSTRING
    max_framesINT
    reportSTRING