Nodes/mute-bypass by node ID/Mute Bypass by ID — Single
ComfyUI Node

Mute Bypass by ID — Single

Mute or bypass anything in your graph by ID

By pixelpainter·Created 9 months ago·Updated 10 days ago· 11
Mute Bypass by ID — Single
      mode_selectfalse
      node_statustrue
      target_node
      target_node_2
      target_node_3
      target_node_4
      target_node_5
      target_node_6
      target_node_7
      target_node_8
      target_node_9
      target_node_10
      target_node_11
      target_node_12
      target_node_13
      target_node_14
      target_node_15
      target_node_16
      target_node_17
      target_node_18
      target_node_19
      target_node_20

      You've got a 40-node workflow and the ControlNet is buried four screens over - you just want to see what the image looks like without it. Dragging over to right-click it every run is exactly the chore that makes big graphs unmanageable. RemoteControl - "Mute Bypass by ID - Single" - is a tiny control node that sits wherever you like and flips one other node between running, muted, and bypassed. That's the entire job, and it does it well.

      The whole pitch is in the pack name: pixelpainter's mute-bypass by node ID. You don't rewire anything, you don't group anything. You tell this node which other node to act on, and it reaches across the graph and sets that node's state. It's the answer to the r/comfyui classic "can I bypass a section by a button press?" - only instead of muting a whole group, it targets one node by ID, even inside a subgraph.

      The rest of this pack exists because that one-node idea is so useful - but the Single is where you start, because it's the one you'll reach for when a single optional stage (a ControlNet, an IP-Adapter, an upscaler pass) needs an on/off switch.

      How it actually works

      Here's the part that trips people up if they come in expecting a normal node: the Python class does literally nothing. Its do_nothing returns an empty tuple. Every bit of the magic is in the frontend JavaScript. The extension replaces the plain target_node string field with a searchable picker - you click it and get a list of every node in your graph, searchable by ID or name, with the path shown as something like [209:25:103] > [subgraph:subgraph:node target]. That path is the clue to how it stays reliable: newer versions resolve targets by subgraph ID + node ID together, which fixes ComfyUI's habit of handing out duplicate IDs to nodes in different subgraphs.

      Then, on every frame, the JS resolves your picker to a real node and sets its mode - the same mode 0 / 2 / 4 states you get from right-clicking a node and choosing Mute or Bypass. It's not an API call and it's not swapping anything - just pressing the button you'd press, from somewhere else.

      The inputs that matter

      Only three, and you'll set two of them:

      • target_node - the picker. This is the node you want to control.
      • node_status - the actual on/off switch. Default is on, meaning the target runs normally. Flip it off and the target gets muted or bypassed.
      • mode_select - decides what "off" means: mute or bypass.

      Mute vs bypass is the one concept worth internalizing, because they feel the same until the graph breaks. Mute skips the node entirely - it produces no output, and anything downstream that needs that output fails. Bypass also skips the node, but passes the upstream data straight through, so the rest of the graph keeps running. For testing "what if I drop this stage?" bypass is almost always the safer default - which is why it's the default here.

      There are no outputs. None. This node is a control surface, not part of the data flow, so don't go looking for a wire to attach it to. That's also why it's safe to drop a dozen of them into one workflow.

      Installing it

      It's a plain custom node with zero dependencies - no models, no pip packages, no torch tricks. Via ComfyUI Manager, search for "mute-bypass by node ID", or clone it:

      cd ComfyUI/custom_nodes
      git clone https://github.com/pixelpainter/comfyui-mute-bypass-by-ID
      

      Then restart ComfyUI. Because the whole thing runs in the frontend JS, a restart isn't a formality here - the picker UI won't exist until the web extension loads.

      Gotchas

      • If you search by ID and two nodes come back with the same number, check the path and pick the one inside the subgraph you meant. Duplicate IDs across subgraphs are a real ComfyUI thing; this pack handles them correctly on recent versions, but only if you grab the right entry.
      • If a target stops responding, make sure you're on a version from the V2.0.0 update or later - that's the changelog line where subgraph targeting got fixed.
      • No outputs means no outputs - if you wired this expecting data, that's your bug, not the pack's.

      It's a tiny tool, but for anyone who lives in big workflows, it's the kind of tiny tool that quietly removes a whole class of annoyances.

      Categorymute bypass by ID

      Inputs (22)

      NameTypeDefaultDescription
      mode_selectBOOLEANfalse
      node_statusBOOLEANtrue
      target_nodeSTRING
      target_node_2STRING
      target_node_3STRING
      target_node_4STRING
      target_node_5STRING
      target_node_6STRING
      target_node_7STRING
      target_node_8STRING
      target_node_9STRING
      target_node_10STRING
      target_node_11STRING
      target_node_12STRING
      target_node_13STRING
      target_node_14STRING
      target_node_15STRING
      target_node_16STRING
      target_node_17STRING
      target_node_18STRING
      target_node_19STRING
      target_node_20STRING

      Outputs (0)

      No outputs