Nodes/Shima/ReBNDLer (Master Prompt)
ComfyUI Node

ReBNDLer (Master Prompt)

Positive and negative in one wire

By KDB-USJP·Created 6 months ago·Updated 6 months ago· 2
ReBNDLer (Master Prompt)
  • positive
  • negative
  • CLIP_L_ONLY
  • CLIP_G_ONLY
  • T5_ONLY
  • masterprompt.bndl
allow_external_linkingfalse
pos_string
neg_string

Every prompt pair in ComfyUI is two wires - positive conditioning and negative conditioning - that have to travel together to the sampler. The ReBNDLer (Master Prompt) folds them into a single masterprompt.bndl wire, and if you're using SDXL or Flux-style models, it can carry the per-encoder conditionings too. One wire instead of two (or five), with all the prompt info in a bundle a Shima sampler can read directly.

The pack's own prompt node is called Master Prompt and emits masterprompt.bndl; the ReBNDLer is the standalone packer that builds the same bundle from whatever conditioning you already have, so you can drop the bundle pattern into an existing graph without switching text encoders.

How it works

The node packs what you give it into a dict:

{"bndl_type": "masterprompt",
 "pos": positive, "neg": negative,
 "clip_l": CLIP_L_ONLY, "clip_g": CLIP_G_ONLY, "t5": T5_ONLY,
 "pos_string": pos_string, "neg_string": neg_string}

The two core inputs are positive and negative CONDITIONING. Beyond those it handles the modern multi-encoder world: CLIP_L_ONLY, CLIP_G_ONLY (the two SDXL encoders) and T5_ONLY (for Flux/SD3) let you bundle per-encoder conditionings, and pos_string / neg_string carry the raw prompt text for logging, file naming, or display. Every input is optional - a positive-only bundle is legal, and the DeBNDLer downstream just hands you None for the rest.

The inputs that matter

  • positive / negative - the conditioning pair that makes up 90% of real usage.
  • CLIP_L_ONLY / CLIP_G_ONLY / T5_ONLY - only when you're splitting prompts per encoder (SDXL, Flux).
  • pos_string / neg_string - raw text, worth wiring if you want the prompt recorded in filenames.

Why it exists

Same reason as the other ReBNDLers: legibility. The KB's plumbing essay points out that a context bundle is how you get from "forty wires crossing the canvas" to "a workflow you can actually read" - and its flip side is that a bundle is a snapshot, so stale contents are the price of the tidiness. The Shima docs also note the pack deliberately ships discrete packers like this instead of one universal bundle node, because ComfyUI's serialization would silently drop connections on workflow reload with the dynamic version.

Where it fits

Feed masterprompt.bndl into a Shima Sampler's masterprompt.bndl input (it overrides the individual positive/negative wires there), or into a DeBNDLer (Master Prompt) to get the conditioning sockets back for standard nodes. It's the standard bridge between "I encode my own prompts" and "I want the sampler's one-wire input."

Install

cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf.git Shima
pip install -r requirements.txt

Restart, then Shima/Routing → ReBNDLer (Master Prompt). ComfyUI Manager: search "Shima". The installer auto-clones ComfyUI-Impact-Pack and cg-use-everywhere on first boot if they're missing (Use Everywhere is the island auto-linking backbone) - expected.

Common issues

Watch the snapshot trap: if you build the bundle before a LoRA or style node that modifies conditioning, the sampler downstream sees the pre-modification version, and no amount of rewiring the bundle will fix it - rebuild the bundle after the modifying node. And if you forget the neg_string/pos_string wires, the text outputs come back empty; that's fine unless a file-namer downstream assumes they're always filled.

CategoryShima/Routing

Inputs (8)

NameTypeDefaultDescription
allow_external_linkingBOOLEANfalse
positiveoptCONDITIONING
negativeoptCONDITIONING
CLIP_L_ONLYoptCONDITIONING
CLIP_G_ONLYoptCONDITIONING
T5_ONLYoptCONDITIONING
pos_stringoptSTRING
neg_stringoptSTRING

Outputs (1)

NameTypeDescription
masterprompt.bndlBNDL