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

JZL - 🎯 场景元素调度

It reads your node names and sorts your reference images for H3

By wjluoxiao·Created 13 days ago·Updated 3 days ago· 57
JZL - 🎯 场景元素调度
  • scene_instruction
  • 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 MiniMax H3 reference encoder takes up to nine reference images, and the whole game is putting the right image in the right slot. JZL - 🎯 场景元素调度 (Scene Element Dispatcher) does that routing for you: you give it the scene dispatch instruction from the 分段处理中心 plus a pile of image inputs, and it fills the nine ref_image_0ref_image_8 outputs that the H3 encoder expects.

Here's the neat part: it doesn't ask you to manually map anything. It classifies each image by the name of the node it came from, using keyword rules - 角色/人物/主角 → character, 背景/场景/environment/bg → background, 道具/物品/weapon/prop → prop - and then matches each slot in the dispatch instruction to the right image by fuzzy name overlap. Your character loader named "角色-孙悟空" and a scene slot named 角色:孙悟空 find each other automatically. That's why the pack's philosophy works: the LLM writes slot names, the dispatcher matches them to whatever you actually loaded.

Inputs and outputs

  • scene_instruction (*) - the 场景调度指令 output from the 分段处理中心. This is the JSON slot list that decides the routing.
  • IMAGE inputs - dynamic and auto-growing; connect as many reference images as you have.
  • ref_image_0 … ref_image_8 (IMAGE) - nine outputs wired straight into the H3 reference encoder's image slots.

The matching is strict and deliberate. Unmatched slots stay None - and an unset reference slot is simply not encoded and not sampled. If the instruction asks for a character you never loaded, you get a gap, not a wrong image sneaking in.

The fiddly bits

The classification and slot matching run on upstream node names, so names matter more than in most workflows. Two practical moves when the routing goes sideways:

  • Rename your loaders so they carry the type word - put 角色, 场景, or 道具 in the label.
  • Or edit the rule file directly: custom_nodes/ComfyUI-JZL-MiniMax-H3/sheding/dispatcher_rules.py holds KW_CHARACTER / KW_BACKGROUND / KW_PROP and the allocation order. The header comments promise a restart (or workflow reload) applies changes.

If the instruction is empty, the node deliberately outputs nothing rather than grabbing everything - so a blank output usually means the upstream script didn't emit a scene instruction, not a wiring failure. And if you need fixed, predictable ports instead of name-guessing, the sibling 场景元素调度2 node trades that magic for 24 explicitly-named inputs.

Install

Standard JZL pack install: ComfyUI Manager → search JZL or ComfyUI-JZL-MiniMax-H3, or git clone https://github.com/wjluoxiao/ComfyUI-JZL-MiniMax-H3 into custom_nodes/, restart. Needs a recent ComfyUI with the official H3 nodes. No model downloads, no LLM runtime - it only moves tensors.

CategoryJZL/MiniMax

Inputs (1)

NameTypeDefaultDescription
scene_instruction*

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