ReBNDLer (Model Citizen)
Pack your model, clip, and VAE into one wire
- model
- clip
- vae
- modelcitizen.bndl
In a big ComfyUI workflow, the model, the CLIP, and the VAE each drag their own wire across the canvas - three cables for one concept, plus a fourth if you want to pass the model's name along. The ReBNDLer (Model Citizen) collapses all of that into a single modelcitizen.bndl wire that a Shima sampler can consume directly. It's the "pack" half of the pack/unpack pair that keeps the Shima (島, island) system's graphs tidy.
The name is a hint at the design: this pack's loader node is called Model Citizen (as in "model of the citizenry"), and it emits a modelcitizen.bndl. The ReBNDLer is the standalone version of that - a way to build the same bundle from whatever model/clip/vae you already have on your canvas, so you can adopt the bundle pattern without switching your whole loader setup.
How it works
A BNDL is just a Python dict with a bndl_type key plus the payload fields. This node takes four optional inputs and returns:
{"bndl_type": "modelcitizen",
"model": model, "clip": clip,
"vae": vae, "name_string": name_string}
model, clip, and vae are the real MODEL/CLIP/VAE objects; name_string is a plain STRING (connect a converted text widget or a loader's name output) so the bundle can carry the checkpoint's name for logging or file naming. Every input is optional, so you can pack a model-only bundle or model+name and skip the rest - the DeBNDLer on the other end just gets None for whatever you left out.
Why bundles instead of wires
The bundle pattern is the same idea as rgthree's Context or the old Efficiency pipe: one wire beats six when a graph gets large, because fewer crossing lines means a workflow you can still read (and the KB's plumbing essay makes the case that legibility is the whole point). The Shima docs are refreshingly honest about one design constraint here: they originally tried a single dynamic DeBNDLer/ReBNDLer with a dropdown to switch types, but ComfyUI's serialization would drop the connections on workflow reload, so they pivoted to discrete, explicit packers like this one. That's why you see four separate ReBNDLer nodes instead of one universal.
The inputs that matter
All four are optional, but in practice you'll usually connect model, clip, and vae together, since that's the standard loading triplet. allow_external_linking (the topbar toggle) controls whether this node broadcasts to and receives from outside its island group when Use Everywhere is active.
Where it fits
The output modelcitizen.bndl plugs straight into a Shima Sampler's modelcitizen.bndl input (where it overrides the individual model/vae wires), or into a DeBNDLer (Model Citizen) to unpack back to plain sockets for non-Shima nodes. It's also the standard way to feed a Panel Model Citizen-style pipeline. If you never touch bundles, you don't need it - but it's the cleanest way to bridge "I load with my own loader" and "I want Shima's tidy single-wire sampler."
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 (Model Citizen). ComfyUI Manager: search "Shima". On first boot the installer auto-clones ComfyUI-Impact-Pack and cg-use-everywhere if missing (the Use Everywhere dependency for island auto-linking) - expected.
Common issues
The classic mistake is unpacking a bundle built before a LoRA was applied and wondering why the model downstream has no LoRA - a bundle is a snapshot, not a live reference, and passing it around won't pick up later model changes. Also note the output is None for any field you didn't wire; if a DeBNDLer hands you an empty VAE, check whether you connected one to the ReBNDLer rather than blaming the unpack side.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| allow_external_linking | BOOLEAN | false | — |
| modelopt | MODEL | — | |
| clipopt | CLIP | — | |
| vaeopt | VAE | — | |
| name_stringopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| modelcitizen.bndl | BNDL | — |