Nodes/ComfyUI-JZL-MiniMax-H3/JZL - 🎯 场景元素调度2
ComfyUI Node

JZL - 🎯 场景元素调度2

The no-magic scene dispatcher — 24 named ports instead of name-guessing

By wjluoxiao·Created 13 days ago·Updated 3 days ago· 57
JZL - 🎯 场景元素调度2
  • scene_instruction
  • 角色A
  • 角色B
  • 角色C
  • 角色D
  • 角色E
  • 角色F
  • 角色G
  • 角色H
  • 场景A
  • 场景B
  • 场景C
  • 场景D
  • 场景E
  • 场景F
  • 场景G
  • 场景H
  • 道具A
  • 道具B
  • 道具C
  • 道具D
  • 道具E
  • 道具F
  • 道具G
  • 道具H
  • ref_image_0
  • ref_image_1
  • ref_image_2
  • ref_image_3
  • ref_image_4
  • ref_image_5
  • ref_image_6
  • ref_image_7
  • ref_image_8

The original 场景元素调度 is clever - it reads your upstream node names and auto-classifies images into character/background/prop. Cute, until your names are ambiguous or you just want a workflow that does exactly what the wires say. JZL - 🎯 场景元素调度2 is the version for that mood: fixed, explicitly-named inputs and zero guesswork.

Instead of auto-growing image ports, this node gives you 24 fixed inputs organized the way the H3 slot system actually thinks: 角色A–H (characters), 场景A–H (scenes), 道具A–H (props). You connect the image for "角色A" to the input literally named 角色A. The dispatch instruction says 角色:A, the node takes it from the 角色A port. That's the whole mechanism - matching by exact slot name, no keyword classifier, no fuzzy matching.

How the matching works

The scene_instruction input parses the same slot JSON the original dispatcher uses - {"slots": ["角色:A", "场景:B", ...]} - and assigns each slot to the next free ref_image_N output in order. Where the "2" gets interesting:

  • The node first checks the global asset pool (JZL_BUS_POOL) for an asset registered under that name - the pack's generation manager can hand assets around "wirelessly" via that in-process pool, so you can route references without dragging a wire across the canvas.
  • Only if the pool misses does it fall back to the fixed ports. That fallback keeps old workflows working and gives you a manual override: wire the port directly and it wins.

Either way, unmatched slots stay None, and a None reference slot means "not encoded, not sampled" - clean gaps instead of wrong images.

Inputs and outputs

  • scene_instruction (*) - from the 分段处理中心's 场景调度指令.
  • 24 optional IMAGE inputs - 角色A–H / 场景A–H / 道具A–H.
  • ref_image_0 … ref_image_8 (IMAGE) - nine outputs into the H3 reference encoder.

Which one should you use?

Honestly, this is a preference call, and the pack ships both for a reason. Use the original 场景元素调度 when you're iterating fast and your loaders are clearly named - the auto-classification saves you fifteen minutes of wiring. Reach for this "2" version when you want determinism: a template workflow, a workflow you'll share, or a project where a mis-routed reference image is expensive. The explicit A–H naming also matches how the H3 prompt tags (<Picture i>) and your reference intros line up, which makes debugging much easier when a shot comes out wrong.

Install

Same pack as everything here: ComfyUI Manager → search JZL or ComfyUI-JZL-MiniMax-H3, or git clone https://github.com/wjluoxiao/ComfyUI-JZL-MiniMax-H3 into custom_nodes/ and restart. Recent ComfyUI required, no model downloads. If the port names look odd to you, remember the whole pack is Chinese-first - 角色 means character, 场景 means scene, 道具 means prop.

CategoryJZL/MiniMax

Inputs (25)

NameTypeDefaultDescription
scene_instruction*
角色AoptIMAGE
角色BoptIMAGE
角色CoptIMAGE
角色DoptIMAGE
角色EoptIMAGE
角色FoptIMAGE
角色GoptIMAGE
角色HoptIMAGE
场景AoptIMAGE
场景BoptIMAGE
场景CoptIMAGE
场景DoptIMAGE
场景EoptIMAGE
场景FoptIMAGE
场景GoptIMAGE
场景HoptIMAGE
道具AoptIMAGE
道具BoptIMAGE
道具CoptIMAGE
道具DoptIMAGE
道具EoptIMAGE
道具FoptIMAGE
道具GoptIMAGE
道具HoptIMAGE

Outputs (9)

NameTypeDescription
ref_image_0IMAGE
ref_image_1IMAGE
ref_image_2IMAGE
ref_image_3IMAGE
ref_image_4IMAGE
ref_image_5IMAGE
ref_image_6IMAGE
ref_image_7IMAGE
ref_image_8IMAGE