Nodes/IAMCCS-nodes/IAMCCS CineSwitch Lazy FLF/PromptRelay
ComfyUI Node

IAMCCS CineSwitch Lazy FLF/PromptRelay

Keep PromptRelay out of the graph until your shotboard actually has relay rows

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
IAMCCS CineSwitch Lazy FLF/PromptRelay
  • cine_linx
  • base_model
  • base_positive
  • relay_model
  • relay_positive
  • model
  • positive
  • promptrelay_enabled
  • prompt_mode
  • report

PromptRelay is the mechanism that switches the active prompt at segment boundaries mid-generation. It's powerful, and it has a nasty failure mode: if a shotboard plan has no relay rows, PromptRelay still demands a local prompt and errors out - "required-local-prompt error," as the pack calls it. CineSwitch exists to stop that from happening. It's a lazy switch between the stable FLF basic-prompt path and the full PromptRelay path, and it only pulls in the PromptRelay machinery when the plan actually needs it.

The docstring states the whole philosophy: "Keep PromptRelay out of the active execution path when ShotPlanner has no Relay rows. This avoids PromptRelay's required-local-prompt error without changing the proven FLF guide pipeline."

How it works. You feed it the cine_linx plan, plus two complete model/conditioning routes: base_model + base_positive (the plain FLF path) and relay_model + relay_positive (the PromptRelay path). Both pairs are lazy inputs. The node inspects the plan - it checks whether any rows have use_prompt set and whether local_prompts/segment_lengths are actually populated - and routes accordingly. If there's nothing to relay, it passes through the base path and never touches the relay inputs. If there are relay rows, it hands back the relay path and tells you it did.

The outputs. model and positive (whichever path won), plus promptrelay_enabled (BOOLEAN), prompt_mode (STRING, which mode is active), and report (STRING, the decision and its reasoning). The last three are genuinely useful for debugging - you can wire report into a text display and see exactly why one path was chosen.

Where it fits. Between your planner (which emits the cine_linx) and your sampler. It's the "is this a plain shot or a multi-beat shot?" decision, made for you, without forcing the heavy path to execute. You still build both model routes - the base model/conditioning and the relay model/conditioning - but only one gets computed per run.

Install. Pack-wide: ComfyUI Manager (search "IAMCCS"), or git clone https://github.com/IAMCCS/IAMCCS-nodes into custom_nodes, restart. ComfyUI ≥ 0.3.0, Python ≥ 3.12, no bundled models.

Gotchas. The lazy routing only works if the node is allowed to ask for inputs on demand - keep it as-is and don't try to wire around it. And "keeps PromptRelay out" is not the same as "no PromptRelay support": if your shotboard does use per-row prompts and the switch says promptrelay_enabled is false, check whether your rows actually have use_prompt set. Empty relay data is the most common reason it routes to the base path, and sometimes that's a mistake in your plan, not in the node.

CategoryIAMCCS/Cine/00 Utilities

Inputs (5)

NameTypeDefaultDescription
cine_linxIAMCCS_SUPERNODE_LINX
base_modelMODEL
base_positiveCONDITIONING
relay_modelMODEL
relay_positiveCONDITIONING

Outputs (5)

NameTypeDescription
modelMODEL
positiveCONDITIONING
promptrelay_enabledBOOLEAN
prompt_modeSTRING
reportSTRING