Nodes/Mochorong/Audio Gate
ComfyUI Node

Audio Gate

Audio Gate is not a noise gate — it is a mute button with a wire on it

By mochorongo·Created a day ago·Updated a day ago· 0
Audio Gate
  • audio
  • audio
enabledtrue

If you come from audio, "gate" means a dynamics processor with a threshold. This one has no threshold, no attack, no release. Audio Gate is a boolean and one AUDIO wire: either the audio passes through untouched, or you get silence of exactly the same length back. Read it as a mute switch, not an effect.

Why you'd actually want a mute on a wire

Audio in ComfyUI is the newest, thinnest layer in the stack - it arrived because video got good enough to want a soundtrack, and it lives in bespoke node packs rather than in the core. That means AUDIO wires run through music generators and stem separators and muxers, and once a clip has sound, every render pass inherits the question "do I want the audio in this one?"

The honest answer is that you usually do - you just want to see the silent version once. A/B a clip with and without its soundtrack without unpicking the graph; render a silent master from the same workflow you'll ship with sound; keep a lip-sync branch wired up while you iterate on the picture. It also protects you from the instinct that breaks the run - deleting the audio wire. audio is a required input here, and it usually is downstream too, so a gate is how you keep the socket populated while changing the decision.

What it does under the hood

ComfyUI's AUDIO type is not exotic: it is a dict with a waveform torch tensor and an sample_rate int. The node's entire body is:

if enabled:
    return (audio,)
silent = {
    "waveform": torch.zeros_like(audio["waveform"]),
    "sample_rate": audio["sample_rate"],
}
return (silent,)

That detail matters more than it looks. The disabled branch is zeros_like, so you get a real tensor with the original shape and sample rate - not None, not a disconnected socket, not a truncated clip. Duration is preserved, so anything downstream that cares about length (a video combine, a waveform preview, an audio-reactive node) still sees the same number of samples. Nothing downstream crashes because you muted something; it just renders quiet.

Inputs and output

Two inputs, both required. enabled is a BOOLEAN widget, default on. audio is the AUDIO wire you're gating. One output, named audio (AUDIO) - wire it wherever the audio was going.

One engineering caveat: it writes zeros immediately, with no fade, so cutting mid-phrase will click. Gate at a boundary, or mute whole clips.

The trick that makes it more than Ctrl+B. You can bypass any node in the editor (Ctrl+B), and for this one bypassing is the same pass-through - but bypass is editor state, decided by your mouse. enabled is a widget, which means you can right-click it, Convert widget to input, and drop a boolean primitive (or any node that emits BOOLEAN) on it. Now the mute is decided by the graph, which is what you want when the workflow ships to someone else.

Install

Mochorong is one of those small utility packs: five nodes, one author, MIT, version 1.0.1. Via ComfyUI Manager search for Mochorong (publisher mochorongo, pack display name "Mochorong Nodes"), or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/mochorongo/Mochorong

Then restart ComfyUI. The README also offers the registry one-liner, comfy node install comfyui-mochorong.

There is nothing else to do. No requirements.txt, no model downloads, no heavy dependency - the pack imports torch, numpy, PIL and ComfyUI's own folder_paths, all of which are already in your install. The only stated floor is Python 3.10, which every current ComfyUI satisfies. If the node doesn't show up under the Mochorong category after a restart, the usual cause is a nested clone (custom_nodes/Mochorong/Mochorong); the .py files have to sit directly in custom_nodes/Mochorong/.

Where people get tripped up

  • You wanted the branch to not run, and it ran anyway. Silence is still audio. If the goal is to skip work rather than to mute output, this is the wrong tool - you want a switch on the branch itself or a placeholder that emits nothing.
  • No audio attached, nothing queues. audio is required, so the node won't execute with the input empty. Connect something you can gate.
  • The mute is baked into the saved workflow state. enabled is saved with the graph, so a workflow you hand over muted stays muted; mention it in the notes or expose it as an input.

The pack has essentially no community footprint - no threads about it, no reputation to check. That's fine for a node like this. It's six lines of arithmetic that do one honest thing, and the alternative is remembering to re-wire your graph after every comparison.

Sources: Mochorong audio_gate.py and README (read 2026-09-14); docs/knowledge/audio-generation.md and docs/knowledge/comfyui-node-plumbing.md for the audio layer, the AUDIO-as-dict convention, and the convert-widget-to-input mechanic; reddit corpus modidex_reddit for the pack's (near-zero) footprint.

CategoryMochorong

Inputs (2)

NameTypeDefaultDescription
enabledBOOLEANtrue
audioAUDIO

Outputs (1)

NameTypeDescription
audioAUDIO