Nodes/Difforum/Difforum · Audio Schedule (reactive)
ComfyUI Node

Difforum · Audio Schedule (reactive)

Turn a band into a curve, plug it anywhere

By chillithebillis·Created 3 months ago·Updated about a month ago· 7
Difforum · Audio Schedule (reactive)
  • params
  • audio
  • schedule
  • values
sourcelow
modeadd
base0.40
amount0.50
smoothing0.20

The Audio Analyzer gives you raw curves - a bass envelope, a beat pulse - but it doesn't tell the graph what to do with them. Difforum · Audio Schedule (reactive) is the glue: pick a band, pick how it modulates a value, and out comes a ready-made DIFFORUM_SCHEDULE that plugs straight into any schedule input - the Feedback Sampler's strength_schedule or cfg_schedule, a camera field, whatever. This is the node the README means when it says "audio reactivity is one node."

Where the Analyzer is the lab instrument, this is the knob on the mixing desk. The inputs read like a formula: take source (one of amp, low, mid, high, onset, beat), apply it in mode (add, subtract, or multiply) with a base value and an amount, and you get a curve for every frame. A bass-pumped zoom is source=low, mode=multiply, base=1.0, amount=0.08. A strength that pulses with the beat is source=beat, mode=add, base=0.4, amount=0.4. The pattern clicks fast: base is the resting value, amount is how hard the music yanks it.

Two details make it more useful than it looks:

  • multiply vs add change the character. Multiply is great for things that should never go to zero - zoom, cfg - because the base survives. Add is better for strength and intensity where a genuine drop-out reads as a musical rest. Neither is "correct," and switching costs one click, so try both.
  • smoothing (default 0.2) tames the same twitchiness you saw in the Analyzer. If the pulse feels like epilepsy, raise it; if the beat is mushy, lower it.

Outputs are a schedule (the DIFFORUM_SCHEDULE object - wire it into any schedule socket) and values, the same curve as a plain FLOAT list in case you want it outside the Difforum graph. Note what you don't need to do: there's no expression writing here, no keyframe syntax, no t. You get a curve that already spans the whole clip, aligned to your params frame count, and it recomputes itself the moment you change the audio.

Install

Part of the Difforum pack, same zero-friction setup:

cd ComfyUI/custom_nodes
git clone https://github.com/chillithebillis/Difforum.git difforum

Restart ComfyUI, or install via ComfyUI Manager (search "Difforum"). Only dependency is numpy, already present in ComfyUI.

Common issues

  • "It says I need DIFFORUM_AUDIO." This node's audio input is not a raw AUDIO clip - it wants the audio_curves output from the Audio Analyzer. Connect Analyzer → this node, not your music loader → this node. Getting them crossed is the #1 mistake.
  • Curve goes wild or dead. Both base and amount range to ±100, and it's easy to overshoot: a multiply with base 1.0 and amount 2.0 means a loud section multiplies zoom by 3, which will look like the camera having a seizure. Keep amount modest (0.1–0.6) and let smoothing soak up the spikes.
  • No beat response. Same story as the Analyzer - check beat_sensitivity upstream, or switch source to onset for tracks without clean kicks.

If you only ever add one audio-reactive node to a Difforum clip, this is the one. The Analyzer feeds it, it feeds the sampler, and suddenly the camera and the denoise strength are playing the song. Two Schedules - bass on zoom, beat on strength - is the entire classic audio-reactive recipe from the README, and it's about as painless as reactive video gets.

CategoryDifforum/audio

Inputs (7)

NameTypeDefaultDescription
paramsDIFFORUM_PARAMS
audioDIFFORUM_AUDIO
sourceCOMBOlow6 options: amp, low, mid, high, onset, beat
modeCOMBOadd3 options: add, subtract, multiply
baseFLOAT0.40-100–100
amountFLOAT0.50-100–100
smoothingFLOAT0.200–0.99

Outputs (2)

NameTypeDescription
scheduleDIFFORUM_SCHEDULE
valuesFLOAT