Shima Panel BNDLer
One node that configures every panel in the workflow
- ====== MODEL CITIZEN ======
- ====== MASTER PROMPT ======
- ====== LATENT MAKER ======
- ====== SHIMA SAMPLER ======
- ====== CTRL ======
- panelinputs.bndl
Shima Panel BNDLer is the control tower for Shima's Panel system. Where each panel (Model Citizen, Master Prompt, Latent Maker, Sampler) configures itself through its own double-click modal, this node collects every panel setting into one place and broadcasts them as a single panelinputs.bndl. Connect that bundle to any panel's panelinputs.bndl input and the panel's settings get overridden by what's in the bundle.
If that sounds like overkill for a three-node workflow, it is. This node earns its keep when you're building a template or an "island" - a workflow you'll share or reuse - and you want one obvious place for whoever opens it to change everything. Instead of opening four modals and hunting for the CFG slider, they find one node that drives model, prompts, size, sampler, and control settings at once. It's Shima's answer to "how do I make this graph configurable without burying the settings."
The clever part is how the settings get in. Every input is an optional forceInput pin - you wire values in from primitives or other nodes rather than typing them. So you can drive the whole panel stack from a handful of Primitive nodes, or even programmatically. The node also merges a shima.commonparams bundle if you wire one, so shared values like seed, width, height, and model type automatically flow into the corresponding panel settings.
How it works
Mechanically it builds a panelinputs.bndl dict from every connected input, skipping the visual separator pins and anything left unwired. When a panel receives this bundle, its own panelinputs.bndl handling overrides its local widget values - checkpoint name, LoRA names and strengths, positive/negative prompts, encoder weights, latent width/height, sampler steps/CFG/sampler, upscale settings, and the control agent's control_type/strength/fit_method/bypass_preprocessing. The separators (the ====== MODEL CITIZEN ====== pins) are dummy wildcard inputs whose only job is to make the giant node readable.
The inputs and outputs that matter
There are no required inputs. The optional inputs are grouped: Model Citizen (ckpt, vae, three LoRAs), Master Prompt (prompts, encoder weights, flux guidance, lumina sysprompt), Latent Maker (width, height, batch, aspect ratio, orientation), Sampler (seed, steps, cfg, sampler, scheduler, denoise, upscale block), and Control (control_type, strength, fit_method, bypass_preprocessing). Output: panelinputs.bndl.
Practical tip: you don't have to use all of it. Wire in just the seed, steps, and CFG and leave the rest unwired - panels keep their local values for anything the bundle doesn't carry.
How to install it
In the Shima pack - ComfyUI Manager, search "Shima", or:
cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf.git Shima
restart. No extra dependencies beyond the pack's core install.
Common issues & troubleshooting
Panel ignores the bundle. Only settings the bundle actually carries override. If a pin is unwired, the panel keeps its modal value. Wire the pin or accept the fallback - that's the designed behavior, not a bug.
The node is huge and intimidating. The long separator pins make it look worse than it is. Most people use maybe five inputs. Right-click the unused pins to disconnect any strays, and don't feel obligated to populate the whole thing.
Inputs (55)
| Name | Type | Default | Description |
|---|---|---|---|
| ====== MODEL CITIZEN ======opt | * | — | |
| ckpt_nameopt | STRING | — | |
| vae_nameopt | STRING | — | |
| lora_1_nameopt | STRING | — | |
| lora_1_strengthopt | FLOAT | — | |
| lora_2_nameopt | STRING | — | |
| lora_2_strengthopt | FLOAT | — | |
| lora_3_nameopt | STRING | — | |
| lora_3_strengthopt | FLOAT | — | |
| filter_by_model_typeopt | STRING | — | |
| ====== MASTER PROMPT ======opt | * | — | |
| positiveopt | STRING | — | |
| negativeopt | STRING | — | |
| clip_l_weightopt | FLOAT | — | |
| clip_g_weightopt | FLOAT | — | |
| t5_weightopt | FLOAT | — | |
| positive_lopt | STRING | — | |
| positive_gopt | STRING | — | |
| positive_t5opt | STRING | — | |
| negative_lopt | STRING | — | |
| negative_gopt | STRING | — | |
| negative_t5opt | STRING | — | |
| flux_guidanceopt | FLOAT | — | |
| lumina_syspromptopt | STRING | — | |
| ====== LATENT MAKER ======opt | * | — | |
| widthopt | INT | — | |
| heightopt | INT | — | |
| batch_sizeopt | INT | — | |
| scaleopt | FLOAT | — | |
| aspect_ratioopt | STRING | — | |
| orientationopt | STRING | — | |
| ====== SHIMA SAMPLER ======opt | * | — | |
| s33dopt | INT | — | |
| stepsopt | INT | — | |
| cfgopt | FLOAT | — | |
| sampler_nameopt | STRING | — | |
| scheduleropt | STRING | — | |
| denoiseopt | FLOAT | — | |
| start_at_stepopt | INT | — | |
| end_at_stepopt | INT | — | |
| randomizeopt | BOOLEAN | — | |
| add_noiseopt | BOOLEAN | — | |
| return_with_leftover_noiseopt | BOOLEAN | — | |
| vae_decodeopt | BOOLEAN | — | |
| upscale_enabledopt | BOOLEAN | — | |
| upscale_methodopt | STRING | — | |
| upscale_factoropt | FLOAT | — | |
| upscale_denoiseopt | FLOAT | — | |
| upscale_stepsopt | INT | — | |
| upscale_cfgopt | FLOAT | — | |
| ====== CTRL ======opt | * | — | |
| control_typeopt | COMBO | 6 options: canny, depth, pose, lineart, scribble, color | |
| strengthopt | FLOAT | — | |
| fit_methodopt | COMBO | 3 options: crop to fit, pad to fit, stretch | |
| bypass_preprocessingopt | BOOLEAN | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| panelinputs.bndl | BNDL | — |