Nodes/Continuity Director/CD · Scene Lock
ComfyUI Node

CD · Scene Lock

Keep your hero standing in the same room across every take

By xinjian0101·Created 3 months ago·Updated 2 months ago· 0
CD · Scene Lock
    • scene
    • scene_json
    • scene_hash
    scene_idscene-001
    location
    time_of_day
    lightingsoft natural light
    paletteneutral
    environment_notes

    The failure mode that ruins more multi-shot videos than anything: your character is perfect, and the room they're standing in keeps quietly changing. Shot one is a bright apartment with a window on the left. Shot three is the same apartment with the window on the right and the light coming from nowhere. The face is consistent, so it feels like it worked - until you cut them together. CDSceneLock is the Continuity Director node that makes the environment a first-class, hash-locked record instead of a hope in the prompt.

    This is one of five "lock" nodes at the top of the pack's production chain (project, character, scene, shot, then the manifest that assembles them). It's governance, not generation: it doesn't render anything, it pins the environment spec down so every take derives from the same one.

    What you set

    • scene_id - your key, e.g. scene-apartment or scene-001.
    • location - a short string, "apartment", "forest clearing", whatever anchors the scene.
    • time_of_day - a dropdown: dawn, day, sunset, night, or interior-controlled. That last one is a thoughtful option, because for interior scenes "time of day" is really "whatever lighting we decided", and it's useful to say so explicitly.
    • lighting - prose, defaults to soft natural light. This is where you actually pin the look.
    • palette - the color story, default neutral.
    • environment_notes - anything else: set dressing, furniture layout, "no signage", "red couch stays".

    How it works

    Like every lock node in the pack, it wraps your inputs into a structured CD_SCENE record and hashes it with SHA-256. The hash is the "lock": edit the lighting text and the hash flips, so a downstream chain that consumed the old scene can detect that the state changed instead of silently mixing old and new. You get three outputs - scene (the typed CD_SCENE wire for other Continuity Director nodes), scene_json (the record as text), and scene_hash (the fingerprint).

    The scene plugs into CDManifestBuilder to join the project manifest, and optionally into CDShotLock so individual shots record which scene they belong to. From there CDBatchDirector stamps every take with the scene it lives in, which is the whole trick: the prompt for shot five can stop re-describing the room from scratch and instead reference a locked scene that can't drift between takes.

    Installing it

    Continuity Director is one of the easiest packs to install in the whole ecosystem, because it has no dependencies to fight over. No model downloads, no API keys, and requirements.txt is a single comment: "No mandatory third-party Python dependencies." Pure standard library.

    In ComfyUI Manager, search "Continuity Director" and restart after install. Or from a terminal:

    cd ComfyUI/custom_nodes
    git clone https://github.com/xinjian0101/continuity-director.git ComfyUI-ContinuityDirector
    

    Restart ComfyUI. Nodes appear as CD · ..., plus a Continuity Director sidebar with an "Add starter chain" button that scaffolds the whole production path. Update with git pull.

    Where people get burned

    Two things. First, the environment record is a contract, not a render - it describes the scene for the human and the prompt-writer, and it stays as good as the text you put in it. If your "palette" field says "neutral" and your model renders neon green, that's a model problem this node can't fix; the value of the lock is that the mismatch is now visible and reproducible instead of random. Second, respect the hashes. If you change the scene after shots were already generated, their recorded scene hashes won't match the new lock, and CDContinuityReport will (correctly) flag the difference. That's the feature working. Re-lock deliberately - update the scene, then regenerate the affected shots - and you'll never ship a video where the room changed its mind halfway through.

    CategoryContinuity Director/01 Locks

    Inputs (6)

    NameTypeDefaultDescription
    scene_idSTRINGscene-001
    locationSTRING
    time_of_dayCOMBO5 options: dawn, day, sunset, night, interior-controlled
    lightingSTRINGsoft natural light
    paletteSTRINGneutral
    environment_notesSTRING

    Outputs (3)

    NameTypeDescription
    sceneCD_SCENE
    scene_jsonSTRING
    scene_hashSTRING