Nodes/IAMCCS-nodes/IAMCCS CinePrompt Architect
ComfyUI Node

IAMCCS CinePrompt Architect

A prompt building block for people who think in shots, not sentences

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
IAMCCS CinePrompt Architect
    • global_prompt
    • local_prompts
    • segment_lengths
    • shotboard_timeline_json
    • board_json
    • markdown_preview
    • report
    templatecontinuous_dolly
    subject_identitythe same main subject, stable identity
    environmenta cinematic physical environment with readable depth
    lighting_weathernatural realistic lighting, atmospheric depth
    visual_stylecinematic realism, grounded camera physics, detailed texture
    camera_languageslow controlled camera movement
    continuity_rulesno hard cuts, coherent spatial continuity, stable subject identity
    shot_goaldirect one continuous cinematic shot with clear temporal progression
    movement_paththe camera moves forward through the scene with physical parallax
    target_reveal
    performance_or_emotion
    audio_or_dialogue
    avoidhard cuts, identity drift, duplicated subjects, frozen motion, early reveal
    duration_seconds9.0
    frame_rate24
    beat_count3
    beat_data{ "beats": [ { "label": "opening_contract", "duration": 3.0, "image_role": "opening anchor", "action": "the camera establishes the subject and begins one continuous physical movement", "bridge": "carry the same camera movement into the next beat without a hard cut" }, { "label": "development", "duration": 3.0, "image_role": "motion checkpoint", "action": "the movement deepens; environment details react physically as the camera advances", "bridge": "arrive toward the next visual target only near the end of the beat" }, { "label": "arrival", "duration": 3.0, "image_role": "target keyframe", "action": "the shot arrives at the strongest visual target with coherent identity and space", "bridge": "" } ] }

    IAMCCS Cine Prompt Architect is the "think like a director" node. Where most prompt builders hand you one big text block, this one assembles a beat structure: a global scene prompt plus per-beat local prompts, segment lengths, and a shotboard timeline JSON - all from a template and a handful of fields you fill in like a shooting script. It's aimed at LTX 2.3 / PromptRelay / Shotboard V3 workflows, which is a mouthful, but the idea is simple: a video isn't one prompt, it's several beats of prompts.

    The catch, stated plainly: this is a node for people already inside the IAMCCS Cine pipeline. It produces prompts and JSON that the rest of that ecosystem (PromptRelay encoders, shotboard planners) knows how to eat. If you're not running that stack, its outputs are still readable strings - you can absolutely just steal the phrasing.

    How it works

    You pick a cinematic template - one of continuous_dolly, future_keyframe, image_text_image, dialogue_lipsync, reveal, environmental_transition - and each one injects its own camera + continuity rules into the assembled prompts. Then you fill the creative fields:

    • subject_identity, environment, lighting_weather, visual_style, camera_language, continuity_rules, shot_goal, movement_path - the standard cinematic shot vocabulary.
    • target_reveal, performance_or_emotion, audio_or_dialogue, avoid - the beat-specific stuff.

    The beat_data JSON (default three beats: opening contract, development, arrival) defines the temporal structure - each beat gets a duration, an image role, an action, and a bridge note telling the next beat how to carry over without a hard cut. beat_count and duration_seconds size the scene. The node then composes a global prompt and a pipe-joined local_prompts list, computes proportional segment lengths, and also emits a shotboard_timeline_json and board_json for downstream planners.

    The outputs that matter

    • global_prompt - the scene-wide prompt.
    • local_prompts - one per beat, pipe-separated.
    • segment_lengths - comma-separated frame counts.
    • shotboard_timeline_json / board_json - structured plans for the shotboard side.
    • markdown_preview - a human-readable render of the whole beat structure. Genuinely useful as a "show me what I wrote" check before you commit a 400-frame generation to it.

    Install

    Part of 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. Pure string work, no extra deps.

    Where people get burned

    • It's a writer, not a director of reality. Beautiful beat structure doesn't stop LTX from doing whatever LTX does. The KB's honest take on LTX prompting: detailed human-written prompts still beat auto-enhancers, but a well-planned beat JSON is only as good as the conditioning mechanism (PromptRelay/guides) that actually applies it.
    • beat_count vs. beat_data mismatch. If you say 3 beats but paste an 8-beat JSON, behavior depends on which one the code trusts for duration math. Keep them consistent.
    • Empty fields. target_reveal, performance_or_emotion, and audio_or_dialogue default to empty and get skipped cleanly - but if a template expects a reveal target and you leave it blank, you'll get a generic "reveal" beat with nothing to reveal. Fill the fields that match your template.
    • Zero search impressions, one-author tooling. It's a leaf node that's safe to borrow prompts from, but the full value needs the shotboard/PromptRelay stack around it.
    CategoryIAMCCS/Cine/01 Prompting

    Inputs (17)

    NameTypeDefaultDescription
    templateCOMBOcontinuous_dolly6 options: continuous_dolly, future_keyframe, image_text_image, dialogue_lipsync, reveal, environmental_transition
    subject_identitySTRINGthe same main subject, stable identity
    environmentSTRINGa cinematic physical environment with readable depth
    lighting_weatherSTRINGnatural realistic lighting, atmospheric depth
    visual_styleSTRINGcinematic realism, grounded camera physics, detailed texture
    camera_languageSTRINGslow controlled camera movement
    continuity_rulesSTRINGno hard cuts, coherent spatial continuity, stable subject identity
    shot_goalSTRINGdirect one continuous cinematic shot with clear temporal progression
    movement_pathSTRINGthe camera moves forward through the scene with physical parallax
    target_revealSTRING
    performance_or_emotionSTRING
    audio_or_dialogueSTRING
    avoidSTRINGhard cuts, identity drift, duplicated subjects, frozen motion, early reveal
    duration_secondsFLOAT9.00.1–600
    frame_rateFLOAT241–120
    beat_countINT31–8
    beat_dataSTRING{ "beats": [ { "label": "opening_contract", "duration": 3.0, "image_role": "opening anchor", "action": "the camera establishes the subject and begins one continuous physical movement", "bridge": "carry the same camera movement into the next beat without a hard cut" }, { "label": "development", "duration": 3.0, "image_role": "motion checkpoint", "action": "the movement deepens; environment details react physically as the camera advances", "bridge": "arrive toward the next visual target only near the end of the beat" }, { "label": "arrival", "duration": 3.0, "image_role": "target keyframe", "action": "the shot arrives at the strongest visual target with coherent identity and space", "bridge": "" } ] }Edited by the CinePrompt Architect UI. JSON with beats: label, duration, image_role, action, bridge.

    Outputs (7)

    NameTypeDescription
    global_promptSTRING
    local_promptsSTRING
    segment_lengthsSTRING
    shotboard_timeline_jsonSTRING
    board_jsonSTRING
    markdown_previewSTRING
    reportSTRING