Nodes/ꘇ Genereti/ꘇ mod.output
ComfyUI Node

ꘇ mod.output

Nothing makes sound until you press Start here

By languel·Created about a month ago·Updated 3 days ago· 1
ꘇ mod.output
  • input
  • audio
◄level0.65►
◄mutefalse►

Every Genereti audio patch ends here. ꘇ mod.output is the only node in the family that actually reaches your speakers, it's the only one flagged as a Comfy output node, and - this is the bit that confuses everyone on first contact - queueing it will never produce a sound. You have to press the little play button on the node.

What it is

Genereti ships a Web Audio patching layer for ComfyUI: mod.* nodes connected by GENERETI_AUDIO_BUS cables, plus chop.* control signals that can drive them. The whole family is designed around explicit playback. mod.output is the end of that chain, the equivalent of plugging your patch into the interface. It also carries the pack's global Panic control, which stops every modular output in the graph, not just this one.

How it works

The bus cables aren't audio. They're route descriptions: a Comfy run stores {format: 'genereti-audio-route', kind: 'Output', settings: {...}} and nothing else. The browser reads that structure and builds real Web Audio nodes - the output module holds a DynamicsCompressor before the destination plus an analyser for the peak meter, both reused across redraws.

Note what that means for anything you were hoping to automate: there's no path from here to Save Audio or any other tensor-based node. Queued execution returns silent data by design, and the pack's own docs are blunt that buses are "live browser resources, not Comfy AUDIO tensors."

The inputs and outputs that matter

Three things to set, and then the button:

  • input - the GENERETI_AUDIO_BUS from your last effect, gain or mixer.
  • level - 0 to 1, default 0.65. It's a plain output gain, and the classroom demos deliberately set it low (0.12–0.15) because a synth patch at full tilt into headphones is unpleasant.
  • mute - boolean, kills the output without touching the upstream graph.

The audio output is a pass-through of the same bus, so you can chain another output off the end if you really want two endpoints. Both are cheap; the AudioContext is shared.

Install

Manager → search Genereti, or from your ComfyUI directory:

git clone https://github.com/languel/genereti.git custom_nodes/genereti
./.venv/bin/python -m pip install -r custom_nodes/genereti/requirements.txt

Getting started is unusually cheap: requirements.txt contains exactly one line (comfyui-frontend-package>=1.53.6), because torch, NumPy, Pillow and aiohttp are already in your ComfyUI environment. There are no model downloads and no separate model server for any of the mod.* nodes - they're browser instrument code. Restart Comfy afterwards, then refresh the browser tab so the new node schemas register. Needs ComfyUI ≥ 0.38.2, Python ≥ 3.11, and a modern browser.

Common issues

You queued and heard silence. That's correct behaviour, not a bug. Press ▷ on this node; sound starts then and there, and keeps running independently of the queue. Stopping toggles it off, ■ Panic stops all modular outputs, and removing the node or leaving the page stops it too.

It worked, then you re-opened the tab and it was silent. Same reason - saving or loading a workflow never authorises playback. Autoplay policy means a fresh user gesture is required each session.

Nothing plays even after Start. Check that your chain actually reaches here: buses are directional, and the graph rejects arbitrary cable cycles outright ("Audio cable cycles are unsupported; use audio.delay for feedback"). If an upstream module is orphaned - not reachable from an output - it gets disposed rather than left running, so a dangling synth is genuinely silent, not just inaudible.

Timing wobbles when you switch tabs. Browser background throttling can still bite the event lookahead. Keep the ComfyUI tab focused for anything rhythmic. Also, this is a solo alpha project - Liuboto, MIT, v0.1.4, self-described as "super alpha" - so back up workflows before you update the pack.

CategoryGenereti / Modular audio

Inputs (3)

NameTypeDefaultDescription
inputGENERETI_AUDIO_BUS—
levelFLOAT0.650–1—
muteBOOLEANfalse—

Outputs (1)

NameTypeDescription
audioGENERETI_AUDIO_BUS—