Nodes/ComfyUI-M-Nodes/Multi Note (One Select)
ComfyUI Node

Multi Note (One Select)

Multi Note (One Select)

By oMoStudio·Created 5 months ago·Updated 4 months ago· 1
Multi Note (One Select)
    • selected_text
    enable_1true
    title_1Title 1
    text_1

    Multi Note (One Select) is the sibling of the "Combine All" note node in ComfyUI-M-Nodes, and it exists for one job: holding several competing prompt ideas where only one is live at a time. Flip the toggle on "cyberpunk alley" and "golden hour beach" goes off by itself. It's a radio button group for prompt clauses, instead of a pile of nodes you keep bypassing.

    It's from oMo.Studio's small utility pack, MIT licensed, with the same "grows as you type" UI as its sibling. If you've been juggling three versions of a style prompt by muting and un-muting CLIP Text Encode nodes, this is the tidier version of that habit.

    How it works

    Same dynamic mechanics as M_Multi_Note: start with one block (toggle, title, text), type in the last text box and a new triplet appears. The difference is exclusivity. Flip a toggle on and the node's JS sweeps every other enable_N switch to off - so at most one block can be enabled. The backend then does exactly what the README says: it returns the first enabled block's text and nothing else, under the output name selected_text.

    That "first enabled" rule matters more than you'd think. The exclusivity is a front-end convenience; the Python side just picks the first block whose toggle is true and whose text isn't blank. So if a saved workflow ever loads with two blocks enabled (say, saved from an older version before the exclusivity logic), the one at the top wins, silently.

    The inputs that matter

    • enable_1 (and the dynamically added enable_N) - the radio buttons. Only one can be on at a time.
    • title_1 / title_N - labels. "Style A", "Style B", "Lighting test" - not part of the output.
    • text_1 / text_N - the prompt content for each option.

    One output: selected_text (STRING). Wire it straight into a CLIP Text Encode (or into the same pack's Random Prompt Selector if you want a random pick among your options).

    Why you'd reach for it

    • Style trials. Keep three full style prompts for the same subject and flip between them. Changing a variable costs one click, not a graph edit.
    • Lighting setups - morning / night / neon, same composition, same seed. A classic use case straight from the README.
    • Keeping history. Unlike deleting and re-typing, your rejected options stay in the node, so you can always go back.

    The trade-off versus its Combine All sibling is obvious: Combine All merges everything active; One Select gives you one thing. If your goal is a layered prompt (subject + pose + environment), use Combine All. If your goal is "which of these three styles do I want this run," use this one.

    Installing it

    It's part of ComfyUI-M-Nodes, so one install gets you all five nodes in the pack. ComfyUI Manager: search "ComfyUI-M-Nodes". Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/oMoStudio/ComfyUI-M-Nodes
    

    Restart after cloning. No requirements.txt, no model downloads - it's a lightweight utility, which makes it one of the safer and faster installs in the ecosystem.

    Where people get burned

    • Nothing enabled = empty string. Turn a block on, or selected_text comes out "". Your sampler won't error, it'll just generate from an empty prompt, which is confusing when it happens.
    • Exclusivity is UI-only. As noted, the backend picks the first enabled block. Trust the toggle state you see.
    • It's a prompt string, not a condition. The output is raw text; if you're on a 2026-era distilled model where prompts are wrapped in a chat template, treat it exactly like you would any other prompt string - the node doesn't transform your text, it just routes it.

    If you're tired of bypassing whole nodes to test one idea, this is the smallest, least fussy way to get that workflow. It won't wow you, but it will quietly stop a whole class of graph clutter.

    CategoryM_nodes

    Inputs (3)

    NameTypeDefaultDescription
    enable_1BOOLEANtrue
    title_1STRINGTitle 1
    text_1STRING

    Outputs (1)

    NameTypeDescription
    selected_textSTRING