Nodes/Shima/Shima Demux List
ComfyUI Node

Shima Demux List

Turn a rotary dial into a sampler dropdown with Demux List

By KDB-USJP·Created 6 months ago·Updated 6 months ago· 2
Shima Demux List
  • mux_in
  • string_val
  • any_val
target_channelSAMPLER
optionsEuler, Euler A, DPM++ 2M
show_labelstrue

The plain Shima Demux gives you numbers. But what if the channel you're controlling isn't a value, it's a choice - sampler name, scheduler, upscale method? That's the job of Shima Demux List. Give it the same MUX signal from an Omnijog, tell it which channel to watch, and it maps that channel's integer position onto a comma-separated list you provide, returning the chosen entry as a STRING. Spin the encoder, watch the sampler flip between Euler and DPM++ 2M, no typing involved.

The mechanism is simple and a little charming. The Omnijog's channel carries a (label, float, int) tuple, and Demux List takes the integer part, does int % len(options), and indexes into your list. The modulo means the dial wraps: position 3 on a 2-item list lands on item 1, so you never get an index out of range, just a cycling wheel. The node also caches the last float/int it saw for its channel, the same "don't collapse to zero" behaviour as its numeric sibling.

Inputs:

  • mux_in (MUX) - the Omnijog's multiplexed output.
  • target_channel (STRING, default SAMPLER) - which channel to read; must match the Omnijog's label exactly.
  • options (STRING, multiline, default Euler, Euler A, DPM++ 2M) - your comma-separated choices. This is the one you'll actually edit. The node reference notes it can trace downstream connections to auto-populate, but typing the list by hand is the dependable path.
  • show_labels (BOOL) - cosmetic.

Outputs: string_val (STRING) - the selected option - and any_val (type *), which just echoes the string so you can feed either a typed STRING socket or an ANY socket without friction.

Where this shines: sampler selection is the canonical use (hence the default SAMPLER channel), but it works for anything discrete - scheduler, upscaler name, aspect ratio preset, Lora filename. Wire the string into a KSampler's converted-to-input sampler widget, or into a String node's override, and you've got hardware-knob vibes on a digital graph.

Because it's a JS-rendered node (the readout shows the string label instead of a number), the usual frontend caveat applies: if the custom UI doesn't appear, restart ComfyUI and hard-refresh the browser rather than assuming your wiring broke. And remember the matching rule - the channel label here has to be byte-for-byte the label on the Omnijog or you'll silently get the cached fallback.

Same pack install as everything else: ComfyUI Manager (search "Shima") or

cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf

then restart. No models needed; the first-run installer may add ComfyUI-Impact-Pack and cg-use-everywhere for the Island system.

CategoryShima/System

Inputs (4)

NameTypeDefaultDescription
mux_inMUXConnect the MUX output from an Omnijog.
target_channelSTRINGSAMPLER
optionsSTRINGEuler, Euler A, DPM++ 2M
show_labelsoptBOOLEANtrue

Outputs (2)

NameTypeDescription
string_valSTRING
any_val*