T8 Reference Role Mapper(多素材角色导演)
Stop letting your reference images fight each other
- reference_images
- reference_videos
- creative_brief
- provider_config
- reference_role_map
- reference_role_map_json
- coverage_conflict_report
- reference_context_for_enhancer
Every vision model has a weakness: throw it two reference images and it starts mixing up who's wearing what and which camera move belongs to which asset. The KB's captioning material calls this multi-subject attribution failure, and it's the exact problem T8 Reference Role Mapper(多素材角色导演) exists to solve - for video prompts instead of dataset captions.
You connect up to 9 reference images and 3 reference videos, tell it what your project is, and it makes one LLM call to analyze only what you plugged in and assign each asset explicit reference roles: identity, costume, prop, environment, action, camera, composition, style, palette, lighting, timing, and the all-important must_not_borrow. The output isn't a vibe - it's a role assignment table that downstream nodes respect, plus a conflict report that tells you when two assets imply incompatible identity or continuity, and a coverage-gap report that admits what it couldn't see rather than inventing evidence. That evidence-boundary honesty is a house style here: local Qwen mode represents videos as timestamped visual samples and explicitly says the audio wasn't analyzed.
The inputs
project_intent(required) - what you're making, so role assignment has a purpose.reference_images/reference_videos- autogrow sockets, up to 9 images and 3 videos. Or, if you have no media,asset_notesalone can carry descriptions - but one or the other is required.creative_brief- optional, from the Director, so the role map respects your identity locks.rewrite_mode,output_language,seed, plus the usualapi_key/provider_config.
A hard rule worth knowing: it reads only media directly connected to this node. The pack's case-library GIFs, source videos, and human previews are never sent as model references - that boundary is enforced in the prompt contract.
What comes out
reference_role_map(typed socket) - feeds T8 Creative Context Assembler and T8 Storyboard Pack.reference_role_map_json- the structured table.coverage_conflict_report- what conflicts and what's uncovered.reference_context_for_enhancer- a plainSTRINGyou can wire straight into your existing H3 node's reference-context slot ("参考素材补充"), which is the fastest way to benefit without restructuring your workflow.
Installing
In the comfyui-minimax-h3-prompt-enhancer-T8 pack. Manager: search "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 ComfyUI and Ctrl+F5 the browser. The vision call uses the pack's provider chain - default Seedance NZ, or shared T8 LLM Provider Config (AI Workshop / OpenAI-compatible / local Qwen). Cloud mode adds no dependencies.
Where it earns its keep
Realistic workflow: this node runs before your enhancer, once, per set of assets. Its one call saves you from rewriting the reference section of every downstream prompt, and the conflict report catches the classic failure - two faces in different lighting, one costume that doesn't match - before you waste a paid video generation discovering it. Keep asset_notes filled for anything the model can't see (an actor's legal name, a prop's provenance), because role mapping is only as good as the evidence it's allowed to read.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| project_intent | STRING | — | |
| rewrite_mode | COMBO | balanced | 3 options: strict, balanced, creative |
| output_language | COMBO | 中文 | 2 options: 中文, English |
| seed | INT | 00–18446744073709550000 | — |
| asset_notesopt | STRING | — | |
| reference_imagesopt | COMFY_AUTOGROW_V3 | — | |
| reference_videosopt | COMFY_AUTOGROW_V3 | — | |
| creative_briefopt | T8_CREATIVE_BRIEF | — | |
| api_keyopt | STRING | 可接 STRING。连接共享渠道配置后按共享配置选择 Seedance NZ、AI 工坊、OpenAI Compatible 或 Local Qwen。 | |
| provider_configopt | T8_LLM_PROVIDER_CONFIG | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| reference_role_map | T8_REFERENCE_ROLE_MAP | — |
| reference_role_map_json | STRING | — |
| coverage_conflict_report | STRING | — |
| reference_context_for_enhancer | STRING | — |