[UI] Shima Panel Sampler
A whole sampling pipeline that doesn't exist until you run it
- modelcitizen.bndl
- latentmaker.bndl
- masterprompt.bndl
- shima.commonparams
- shima.samplercommons
- panelinputs.bndl
- Image
- Latent
- shimasampler.bndl
Shima Panel Sampler is the payoff node of Shima's Panel system - and it's a ghost. The Python class that defines it is explicitly documented as "NEVER EXECUTED." What actually happens: when you queue your workflow, the frontend intercepts the graph and rewrites this single panel into a full sampling pipeline - DeBNDLer → Shima.Sampler → ReBNDLer - before the graph ever reaches ComfyUI's backend. You see one tidy chassis on the canvas; the engine runs a dozen nodes.
That's the whole trick of the Panel system. Model Citizen, Master Prompt, and Latent Maker each hand this node one bundle; it accepts all three, plus the common params, and inside the modal you get the real sampling controls: steps, CFG, sampler, scheduler, denoise, seed, start/end step, noise handling - plus an integrated upscale pass (HiRes-fix style) with its own denoise and steps. Double-click the chassis and it's a full KSampler + upscaler; look at the canvas and it's one small board.
How it works
The bundles get unpacked by the generated DeBNDLer, fed to a KSampler with your settings, and the results repacked: Image, Latent, and a combined shimasampler.bndl. Because it's a macro expander, changing settings means changing widget values - the graph rewrite happens fresh each queue, so nothing goes stale. The randomize toggle and s33d seed follow Shima's seed convention, and use_commonparams lets the shared Commons node drive seed and dimensions so every panel in the workflow stays in sync.
The upscale block is worth calling out: enable upscale_enabled, pick a upscale_method, a factor, and a second-stage denoise/steps/cfg, and the macro inserts a latent upscale between sampling passes. That's the classic hires-fix shape built into the panel instead of wired by hand.
The inputs and outputs that matter
Required: modelcitizen.bndl, masterprompt.bndl, latentmaker.bndl (the three generator bundles), shima.commonparams, then the sampler core - s33d, randomize, steps, cfg, sampler_name, scheduler, denoise, add_noise, start_at_step, end_at_step, return_with_leftover_noise, preview_method, vae_decode - and the upscale set (upscale_enabled, upscale_method, upscale_factor, upscale_denoise, upscale_steps, upscale_cfg).
Optional: shima.samplercommons (a shared sampler-settings bundle with its own toggle), use_commonparams, allow_external_linking, payload, and panelinputs.bndl for external overrides. Outputs: Image (IMAGE), Latent (LATENT), shimasampler.bndl.
How to install it
Part of the Shima pack - ComfyUI Manager, search "Shima", or:
cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf.git Shima
restart. The macro expander is frontend JS, so this node depends on the pack's JS loading cleanly; core deps (Impact Pack, cg-use-everywhere) install automatically.
Common issues & troubleshooting
Node errors with "is a virtual macro and should have been intercepted." That message means the graph hit the backend without the frontend rewrite - almost always a JS failure. Reload the page hard, or check you're on the legacy LiteGraph canvas; the Nodes 2.0 frontend breaks the panel JS. If it truly reaches the backend, that's the bug.
Nothing happens when you double-click. The modal is driven by JS. Same fix family as above - reload, or switch frontends.
Upscale pass changes nothing. upscale_denoise at 0 does nothing to the image; at high values it's a full resample. And upscale_factor below 1.0 shrinks. Start with ~1.5 factor and ~0.4–0.5 denoise.
Inputs (29)
| Name | Type | Default | Description |
|---|---|---|---|
| modelcitizen.bndl | BNDL | Requires modelcitizen.bndl | |
| latentmaker.bndl | BNDL | Requires latentmaker.bndl | |
| masterprompt.bndl | BNDL | Requires masterprompt.bndl | |
| shima.commonparams | DICT | Configuration bundle from Shima.Commons | |
| s33d | INT | 00–18446744073709550000 | — |
| randomize | BOOLEAN | false | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.00–100 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| denoise | FLOAT | 1.000–1 | — |
| add_noise | BOOLEAN | true | — |
| start_at_step | INT | 00–10000 | — |
| end_at_step | INT | 100000–10000 | — |
| return_with_leftover_noise | BOOLEAN | false | — |
| preview_method | COMBO | auto | 3 options: auto, latents, none |
| vae_decode | BOOLEAN | true | — |
| upscale_enabled | BOOLEAN | false | — |
| upscale_method | COMBO | nearest-exact | 5 options: nearest-exact, bilinear, area, bicubic, bislerp |
| upscale_factor | FLOAT | 1.501–4 | — |
| upscale_denoise | FLOAT | 0.500–1 | — |
| upscale_steps | INT | 201–10000 | — |
| upscale_cfg | FLOAT | 8.00–100 | — |
| payloadopt | STRING | {} | — |
| use_commonparamsopt | BOOLEAN | true | — |
| allow_external_linkingopt | BOOLEAN | false | — |
| shima.samplercommonsopt | DICT | Sampler settings bundle from Shima.SamplerCommons | |
| use_samplercommonsopt | BOOLEAN | false | — |
| panelinputs.bndlopt | BNDL | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| Image | IMAGE | — |
| Latent | LATENT | — |
| shimasampler.bndl | BNDL | — |