Nodes/Allma Nodes/Allma Muter (false = mute)
ComfyUI Node

Allma Muter (false = mute)

Ctrl+M as a node, up to ten branches at once

By OliveiraNickolas·Created 24 days ago·Updated 22 days ago· 0
Allma Muter (false = mute)
  • values
    enabledtrue
    on_1true
    on_2true
    on_3true
    on_4true
    on_5true
    on_6true
    on_7true
    on_8true
    on_9true
    on_10true

    Every ComfyUI user learns the two keyboard shortcuts within a week: Ctrl+M mutes a node, Ctrl+B bypasses it. But muting by hand means reaching for the node, one at a time, in a graph that's already too big to navigate. Allma Muter (false = mute) turns that into a control surface: point it at the branches you want to switch off, flip toggles, and the muting happens for you - ten branches from one node.

    What it's really doing

    Here's the subtle part, and it's why this node exists at all. Muting edits the graph, and the graph is frozen the moment you queue a run. A boolean changes a value. Nothing built-in bridges the two - ExecutionBlocker kills the entire consuming node rather than skipping one input, ComfySwitchNode demands both branches wired, and no native node produces "nothing" to feed the off branch. Allma Muter's trick: it mutes the branch in the browser, before the graph is submitted, by setting the upstream node's mute state - exactly what Ctrl+M does, but scriptable per branch.

    The wiring pattern is what surprises people first: nothing passes through. Wire any output into a slot, a toggle appears for it, and the real wire still runs straight from the source to whatever consumes it. This node only points at the branch it governs, which is why it has no outputs - and why it never executes. With nothing downstream it's pruned before the graph runs, which is exactly right for a control surface.

    There's a master enabled switch that sets every branch toggle at once, and each branch keeps its own on_1on_10 toggle. One catch on those toggles: a wire into them has to come from a literal boolean - a boolean primitive, or a subgraph input promoted from one. The value is read in the browser, before the graph queues, because a value travelling on a link doesn't exist until the graph is already running. A boolean some node computes can't be known in time, so the last clicked state wins. And muting takes the branch cleanly out: nodes you muted by hand are never woken up again by the muter - only the ones it put to sleep come back.

    Muter vs Bypasser

    They look identical and differ in one judgment call. Muting removes a node from the graph, so whatever it fed sees an unconnected input - right for a branch that should simply not be there, like a reference image you're leaving out of this run. Allma Bypasser keeps the node in place and passes its input through to its output, so the chain stays whole - right for a stage you're stepping over, like an upscaler in the middle of a pipeline that still has to hand its frames on.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/OliveiraNickolas/AllmaNodes
    

    Restart. No pip install, no backend, no models - pure logic in the Allma/logic category. If you load an old workflow with an Allma Gate node, that's this node's old name; it's been renamed to Muter (more below in the Gate article). The pack is new and untested at scale, but the mechanism is simple enough that the main risk is your own wiring - double-check that the branch you're muting doesn't feed an output node through another path, or the muter will look like it did nothing.

    CategoryAllma/logic

    Inputs (12)

    NameTypeDefaultDescription
    enabledBOOLEANtrueMaster switch. Flipping it sets every branch toggle at once; each branch can still be set on its own afterwards.
    valuesCOMFY_AUTOGROW_V3
    on_1optBOOLEANtrueThis branch on its own. A wire here must come from a literal boolean — it is read before the graph runs.
    on_2optBOOLEANtrueThis branch on its own. A wire here must come from a literal boolean — it is read before the graph runs.
    on_3optBOOLEANtrueThis branch on its own. A wire here must come from a literal boolean — it is read before the graph runs.
    on_4optBOOLEANtrueThis branch on its own. A wire here must come from a literal boolean — it is read before the graph runs.
    on_5optBOOLEANtrueThis branch on its own. A wire here must come from a literal boolean — it is read before the graph runs.
    on_6optBOOLEANtrueThis branch on its own. A wire here must come from a literal boolean — it is read before the graph runs.
    on_7optBOOLEANtrueThis branch on its own. A wire here must come from a literal boolean — it is read before the graph runs.
    on_8optBOOLEANtrueThis branch on its own. A wire here must come from a literal boolean — it is read before the graph runs.
    on_9optBOOLEANtrueThis branch on its own. A wire here must come from a literal boolean — it is read before the graph runs.
    on_10optBOOLEANtrueThis branch on its own. A wire here must come from a literal boolean — it is read before the graph runs.

    Outputs (0)

    No outputs