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 12 months ago·Updated 4 days ago· 117
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—