ReBNDLer (Latent Maker)
Pack your starting latent with its seed and size
- latent
- latentmaker.bndl
The ReBNDLer (Latent Maker) packages everything a sampler needs to start - the empty latent, the seed, and the target width/height - into a single latentmaker.bndl wire. It's the bundle equivalent of the pack's Latent Maker node, but standalone: you build the latent with your own Empty Latent (or a Shima Latent Maker), then pack it up for the one-wire sampler input.
The interesting part is what gets bundled alongside the latent. s33d (the seed, spelled that way because the pack avoids ComfyUI's automatic control_after_generate widget), width, and height all ride along in the bundle. So a sampler that consumes latentmaker.bndl can know not just what latent to start from but which seed and dimensions produced it - which is exactly the kind of context you want if you're logging runs or reproducing images.
How it works
All four inputs are optional, and the node returns a dict:
{"bndl_type": "latentmaker",
"latent": latent, "s33d": s33d,
"width": width, "height": height}
The latent input is the actual LATENT tensor. s33d, width, and height are INT inputs marked forceInput, meaning they arrive as wires rather than widgets - you connect a seed source and dimension nodes, or convert widget values to inputs, rather than typing them inline. Leave any of them unwired and the bundle carries None; the DeBNDLer hands back whatever was in there.
The inputs that matter
latent- the one that actually matters for sampling.s33d- the seed, if you want the sampler to use and report the same seed that generated the latent.width/height- the dimensions, mostly metadata but useful for validation and logging.
Where it fits
latentmaker.bndl feeds a Shima Sampler's latentmaker.bndl input, overriding the sampler's individual latent wire, or a DeBNDLer (Latent Maker) to unpack back to latent / s33d / width / height for standard nodes. It's also the output style used by the pack's Panel Latent Maker, so if you've seen panels collapse a whole latent setup into one socket, this is the node that does the packing when you're not using panels.
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 (Latent Maker). ComfyUI Manager: search "Shima". First boot auto-installs ComfyUI-Impact-Pack and cg-use-everywhere if missing - the Use Everywhere dependency, expected.
Common issues
Because s33d, width, and height are forceInput wires, a brand-new node sits there with three empty sockets and no obvious way to type values - you have to connect a seed source and dimension nodes (or convert widgets to input). If the sampler downstream reports a missing seed, that's the wiring, not the node. And remember the snapshot rule that applies to every bundle: whatever seed/size you pack is what the sampler sees, even if you change dimensions elsewhere afterward.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| allow_external_linking | BOOLEAN | false | — |
| latentopt | LATENT | — | |
| s33dopt | INT | — | |
| widthopt | INT | — | |
| heightopt | INT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latentmaker.bndl | BNDL | — |