Shima Demux
Pull one channel out of Shima's 20-knob control panel
- mux_in
- float_val
- int_val
If you've ever wished a workflow felt more like a mixing desk than a spreadsheet, Shima built the toy for you: a big rotary "Omnijog" encoder with up to twenty channels, each labelled (CFG, SEED, LORA1…LORA18 by default), where you scroll to a channel and turn the dial. The Omnijog packs every channel's value onto one multiplexed MUX wire. This node - Shima Demux - is the other end of that cable: it filters the MUX signal down to the single channel you name and hands you its value as plain FLOAT and INT.
Mechanically it's a dictionary lookup with a memory. The Omnijog builds a dict keyed by channel label ({"CFG": (label, float, int), "SEED": ...}), and the Demux reads the entry for your target_channel, returning the float and the int versions of that channel's value. The clever bit is the cache: if the Omnijog switches to a different channel, the Demux keeps returning the last value it saw for yours instead of collapsing to zero. That's a small detail that saves you from constant "why did my CFG reset to 0" confusion when you're twiddling the encoder around.
The inputs that matter:
- mux_in (MUX) - connect the
mux_outfrom an Omnijog. Nothing else feeds it. - target_channel (STRING, default
CFG) - the channel label you want out. It matches against the Omnijog's channel labels, so keep the spelling identical. - show_labels (BOOL, default on) - cosmetic, labels the node in the UI.
Outputs are float_val (FLOAT) and int_val (INT) - the same channel as both types, so you can drive a CFG slider, a steps counter, or anything else that expects a specific numeric type without a cast node.
This is a frontend-heavy node: the Omnijog's dial and the Demux's readout are drawn by the pack's JS (shima_omnijog.js, shima_demux.js), and the backend is a thin pass-through. So if the fancy UI doesn't render, that's a JS-loading problem, not a wiring one - restart ComfyUI and hard-refresh the browser tab before you start blaming your graph.
Where you'd reach for it: any Shima "control panel" workflow where you want one rotary encoder to tweak several parameters without a wall of sliders, or an A/B-style workflow where one dial drives whichever channel you've selected. If your target is a string (like picking a sampler name from a list), you want the sibling node, Shima Demux List, instead.
Install the pack with ComfyUI Manager (search "Shima") or:
cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf
then restart. No models, no extra deps - though the pack's first-run installer will pull ComfyUI-Impact-Pack and cg-use-everywhere if you don't have them, since the wider Island system leans on Use Everywhere.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| mux_in | MUX | Connect the MUX output from an Omnijog. | |
| target_channel | STRING | CFG | — |
| show_labelsopt | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| float_val | FLOAT | — |
| int_val | INT | — |