Nodes/comfyui-minimax-h3-prompt-enhancer-T8/T8 Film Project Router(影视项目状态路由)
ComfyUI Node

T8 Film Project Router(影视项目状态路由)

Your long video project keeps contradicting itself — route it like a pipeline, not a prayer

By T8mars·Created about a month ago·Updated about 21 hours ago· 254
T8 Film Project Router(影视项目状态路由)
  • previous_state
  • film_project_state
  • active_stage_context
  • project_state_json
  • invalidation_report_json
project_title未命名影视项目
mode全流程(从当前阶段继续)
target_stage08-prompt | 08 H3 / Seedance 提示词
project_brief
authoritative_inputs
confirmed_stages
changed_stage无(不触发失效传播)
revision_note
world_rules
ability_costs_and_limits
knowledge_gaps
continuity_anchors
previous_state_json

Here's the pain this node is answering: you're making a multi-shot H3 or Seedance 2.0 video, you changed the script three times, and now your world rules say one thing while the prompt generation says another, and you've genuinely lost track of which stage's output is still valid. T8 Film Project Router is a small state machine that lives on your canvas and tracks all of it - stage, authoritative inputs, world rules, revisions, and which downstream stages your latest edit just invalidated.

The important thing up front: it doesn't read files, call an LLM, or rewrite anything downstream. It's a bookkeeper with opinions. You feed it your facts and it hands back a structured project state plus an invalidation report saying "you touched the screenplay, so the assets and prompt stages are now stale." What you do with that report is on you - the policy it enforces is literally automatic_downstream_regeneration: false.

The mechanism

It models a film project as an 8-stage pipeline, from 01-synopsis through 08-prompt (H3/Seedance prompts), and it knows the dependency graph between them - change the synopsis and characters, treatment, screenplay, and everything downstream ripple. Four work modes control scope: full-pipeline continue, do only one specified stage, relay on existing authoritative material, or revision (keeps versioning and marks impact).

Each run bumps a revision counter, and here's the genuinely nice part: blank fields inherit from the previous state when you chain routers (previous_state custom socket, or previous_state_json). Want to actually clear a field instead of inheriting it? Type [清空继承] (or [CLEAR_INHERITED]) into that specific input. Set changed_stage to what you just edited and the router computes every downstream stage that's now stale.

Inputs that matter

  • project_title, mode, target_stage - the basics you set once.
  • changed_stage - the one that triggers invalidation. Leave it at and the router just organizes; set it and you get a report.
  • world_rules, ability_costs_and_limits, knowledge_gaps (character knowledge gaps), continuity_anchors - these become the "world contract" that downstream prompt stages must not violate.
  • authoritative_inputs - one per line; the router treats these as facts the LLM must copy verbatim, never silently "repair."
  • previous_state - the custom socket from an earlier Router. Recommended over previous_state_json; if you provide both and they disagree, it errors rather than guessing.

Outputs

film_project_state (custom socket) feeds the next Router version, or the pack's T8 Long-form Planner / T8 Storyboard Pack. active_stage_context is a STRING with the compact state for your current stage - this is what you'd wire toward a prompt node. project_state_json is the full state; invalidation_report_json lists affected stages and which of your confirmed outputs are now stale.

Installing and gotchas

It's in T8mars's pack, so one install covers it: Manager → "MiniMax H3 / Seedance 2.0 / Music 3 Prompt Enhancer (T8)", or:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-prompt-enhancer-T8

Restart, Ctrl+F5 after updates. Things that bite: this node is for organizing, and it will not save a project whose stages you never actually confirmed - you have to tell it which stages are done via confirmed_stages (or it treats nothing as confirmed). It also refuses text that looks like an API key (sk-...) because the state JSON can end up in workflow files. And remember the invalidation report is advisory: the emitted state's status is awaiting_human_confirmation, and the router explicitly does not auto-regenerate anything - a stale prompt stage won't block you until you act on the report yourself.

CategoryT8/Creative Suite

Inputs (14)

NameTypeDefaultDescription
project_titleSTRING未命名影视项目
modeCOMBO全流程(从当前阶段继续)4 options: 全流程(从当前阶段继续), 指定阶段(只做本阶段), 接力(使用已有权威资料), 修订(保留版本并标记影响)
target_stageCOMBO08-prompt | 08 H3 / Seedance 提示词8 options: 01-synopsis | 01 概念锚定, 02-characters | 02 角色圣经, 03-worldbuilding | 03 世界规则(可选), 04-treatment | 04 分场大纲, 05-screenplay | 05 剧本, 06-assets | 06 图像资产, +2
project_briefSTRING连接上一版时留空表示继承;输入 [清空继承] 可显式清空本字段。
authoritative_inputsSTRING连接上一版时留空表示继承;输入 [清空继承] 可显式清空全部权威输入。
confirmed_stagesSTRING连接上一版时留空表示继承;输入 [清空继承] 可清空已确认阶段。
changed_stageCOMBO无(不触发失效传播)9 options: 无(不触发失效传播), 01-synopsis | 01 概念锚定, 02-characters | 02 角色圣经, 03-worldbuilding | 03 世界规则(可选), 04-treatment | 04 分场大纲, 05-screenplay | 05 剧本, +3
revision_noteSTRING
world_rulesSTRING连接上一版时留空表示继承;输入 [清空继承] 可显式清空本字段。
ability_costs_and_limitsSTRING连接上一版时留空表示继承;输入 [清空继承] 可显式清空本字段。
knowledge_gapsSTRING连接上一版时留空表示继承;输入 [清空继承] 可显式清空本字段。
continuity_anchorsSTRING连接上一版时留空表示继承;输入 [清空继承] 可显式清空全部连续性锚点。
previous_state_jsonoptSTRING
previous_stateoptT8_FILM_PROJECT_STATE直接连接上一版 Router 的 film_project_state;与 JSON 同时提供时必须内容一致。空白字段自动继承;在需要清空的对应字段输入 [清空继承]。

Outputs (4)

NameTypeDescription
film_project_stateT8_FILM_PROJECT_STATE
active_stage_contextSTRING
project_state_jsonSTRING
invalidation_report_jsonSTRING