Nodes/ComfyUI_LC123_nodes/LC Bypass Relay
ComfyUI Node

LC Bypass Relay

LC Bypass Relay

By lonecatone23·Created 2 months ago·Updated 2 days ago· 18
LC Bypass Relay
  • any_1
  • OPT_CONNECTION

You know the drill. You've built a master workflow with six branches, and tonight you want it to run without the tiled upscale, the face detailer and the second sampler. So you right-click → Bypass, eleven times. Next week you do it again, and you can't remember which eleven you turned off.

LC Bypass Relay is the fix. Wire the nodes you want switched together into its left side, run its single output into an LC Bypasser or LC Mute, and one toggle kills all of them.

Why you'd reach for it

This is a pattern the ecosystem already loves, just not universally available. rgthree shipped the same idea years ago - its Fast Groups Muter/Bypasser gives you a dashboard over groups, and its Mute/Bypass Repeater and Relay propagate those states outward. Its users describe exactly the case you're about to hit: bypass the head of a tiled-upscale chain and every node downstream follows, one switch instead of nine. The inversion trick is the good part - invert the relay and enabling your tiled upscale automatically switches the latent-upscale branch off, so you can never run both by accident.

Where rgthree's group tools want an organised, labeled group, the LC Relay takes arbitrary nodes from anywhere on the canvas. If your "branch" is three nodes scattered across a spaghetti graph, that's the difference that matters.

How it actually works

Two halves, and only one of them is Python, which is worth knowing before you debug it.

lc_bypass_relay.py is a stub: one wildcard input, one wildcard output, and a run() that hands back the first input that isn't empty. Nothing in it switches anything off.

The actual behaviour lives in web/lc_mode_relay.js - this is one of four JS-only nodes in the pack. Roughly: it finds the LC Bypasser / LC Mute hub this relay's OPT_CONNECTION is plugged into, reads whether that hub's boolean for that slot is on, and stamps the matching mode onto every node wired into the relay's left sockets. A Mute hub gives mode 2 (never run); a Bypasser hub gives mode 4 (bypass, pass-through). It re-checks on an interval, so the canvas keeps up when you flip the hub, and the modes live on the nodes themselves - which is why saving the workflow saves the switch positions.

The two things you wire

  • any_1 (type *) - the targets. It autogrows: plug a wire into the last slot and it adds any_2, any_3… up to 16, keeping one empty spare and pruning extras so the left edge stays tidy.
  • OPT_CONNECTION (also *) - out to an LC Bypasser or LC Mute. Only those two. It does nothing at all on its own, and nothing plugged into a Groups Bypasser.

One distinction worth internalising: bypass (mode 4) is pass-through - the node is skipped and its input moves along to the output. Mute (mode 2) means it never runs. For a kill switch, mute is usually what you want.

Install

ComfyUI Manager → search ComfyUI LC123 Nodes (publisher lonecatone23), or:

cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes
# restart ComfyUI

No requirements.txt in the repo - it runs on ComfyUI's own env (torch, numpy). The console prints a load line per module and a node total; per-module failures usually mean a nested folder (ComfyUI_LC123_nodes/ComfyUI_LC123_nodes/__init__.py). And since this node is JS-only, hard-refresh the browser (Ctrl/Cmd-Shift-R) after installing, or it simply won't exist.

Where people get burned

Nothing happens. You didn't wire the output into an LC Bypasser or LC Mute. Without a hub there's nothing to read, and the relay just sits there passing one value through.

Right-clicking the relay doesn't override the hub. If a hub is wired, the hub wins - the relay only falls back to its own mode when there isn't one.

You muted a node that feeds a required input downstream. Then the prompt fails to validate, because a muted node produces no output and the consumer has nothing to hand it. Relay taps that end on optional sockets, or relay the whole branch including its consumers.

Expecting a headless run to honour last night's toggles. Modes are read from the graph when you queue, so API runs use whatever the saved workflow had.

Old workflows load fine: the JS remaps the pack's earlier names (LC Mute Bypass Relay, LC Mute Bypass Repeater, LC Bypass Fanout) to this one class.

Worth installing the whole pack for this?

Honestly, no - you install LC123 because you're loading someone else's LC123 workflow and ComfyUI is nagging about missing nodes, or because you want the switch family. It's a 112-node toolkit from a working Civitai workflow author; the relay is one utility inside it. Its siblings LC Image Pass and LC Mask Pass are the same idea applied to a single wire, and those are what I'd reach for first if you're still deciding how much of your graph should be relay-driven.

CategoryLC123/utils

Inputs (1)

NameTypeDefaultDescription
any_1opt*

Outputs (1)

NameTypeDescription
OPT_CONNECTION*