Nodes/ComfyTV/Audio Echo
ComfyUI Node

Audio Echo

From a mountain canyon to a robot voice — presets that get you there in one click

By jtydhr88·Created 3 months ago·Updated about 15 hours ago· 725
Audio Echo
  • audio
  • video
  • audio
force_run_token0
project_id
parent_output_id0
presetmountains
in_gain0.60
out_gain0.30
delay_ms1000
decay0.50

Delay is the most fun audio effect and the easiest one to make sound terrible. Audio Echo is ComfyTV's take on it, and the smart part is the presets: mountains, mountains2, doubled, robot, and a feedback mode that does something the simple filter can't. Instead of dialing delay time and feedback from scratch and hoping, you pick the vibe and tweak from there.

The four named presets map directly to FFmpeg's aecho filter with tuned in/out gains, delay, and decay:

  • mountains - 1000ms delay, 0.3 decay. Big, canyon-y slap that sounds like you're shouting across a valley.
  • mountains2 - dual taps at 1000ms and 1800ms, like a canyon with an echo of an echo.
  • doubled - 60ms delay. That's slapback territory, the "made it sound bigger" trick, not an echo at all really.
  • robot - 6ms delay with high feedback, which is how you get that metallic robotic edge from a cheap delay.
  • feedback - not an aecho at all; the source shows it routes to a custom feedback-delay DSP (echo_feedback) that regenerates and saturates the tail. For endless, self-oscillating delays.

How it works

The preset combo picks the behavior. When it's custom (or anything not in the preset list), your four knobs take over: in_gain (0–1, how much signal enters the delay), out_gain (0–1, how loud the wet output is), delay_ms (1–90000), and decay (0.01–1, how much each repeat loses - lower decays die faster, higher ones ring forever). The source strings confirm the mapping: in_gain:out_gain:delay_ms:decay is exactly what goes into the aecho filter.

Feed audio (COMFYTV_AUDIO) or video (its soundtrack). Output is audio. Internal inputs (force_run_token, project_id, parent_output_id) are frontend plumbing - leave them.

Installing ComfyTV

cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV

Full backend restart, then ComfyTV → AudioFX; ComfyUI Manager finds "ComfyTV". Zero extra Python deps - presets run through FFmpeg's aecho via PyAV; the feedback mode uses numpy DSP. Both already ship with ComfyUI. No models.

The pack-wide install trap: on macOS / ComfyUI Desktop / multi-install machines, cd ComfyUI/custom_nodes can clone into the wrong instance - clone succeeds, stages never appear. Find the running instance's path in the startup log, clone into that instance's custom_nodes by absolute path (quote paths with spaces/parentheses), confirm ComfyTV/__init__.py is top-level, restart the backend fully.

Common issues

  • Robot sounds wrong on voice. 6ms delay is tuned for a specific effect; if it's too metallic, drop decay toward 0.2 or nudge delay_ms up. On music it can sound like a broken speaker - use doubled for a "bigger" sound instead.
  • Feedback mode never stops. That's the point - feedback delays self-oscillate. If it's out of control, you can't tame it from this node; it's a performance feature. Use a short delay_ms and modest decay, or switch back to a preset.
  • Echo is barely audible. out_gain defaults low (0.3) relative to in_gain (0.6). Raise out_gain toward 0.5–0.7 for a stronger wet signal.
  • The tail is too short or too long. decay is the only thing controlling repeat length. 0.5 is a middle ground; 0.9+ turns a voice into a canyon.

The presets do 80% of the work. Start there, then fight over decay like the rest of us.

CategoryComfyTV/AudioFX

Inputs (10)

NameTypeDefaultDescription
force_run_tokenINT00–2147483647Internal — bumped on Run to invalidate ComfyUI's input cache.
project_idSTRINGInternal — populated by the projectStore on the frontend.
parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
presetCOMBOmountains6 options: custom, feedback, doubled, robot, mountains, mountains2
in_gainFLOAT0.600–1
out_gainFLOAT0.300–1
delay_msFLOAT10001–90000
decayFLOAT0.500.01–1
audiooptCOMFYTV_AUDIO
videooptCOMFYTV_VIDEO

Outputs (1)

NameTypeDescription
audioCOMFYTV_AUDIO