Nodes/Isaac's Nodes/Isaac's Amplitude To Weights
ComfyUI Node

Isaac's Amplitude To Weights

The bridge between your music and your weights

By iemesowum·Created 2 years ago·Updated about a year ago· 1
Isaac's Amplitude To Weights
  • normalized_amp
  • weights

Amplitude To Weights is the adapter node in Isaac's audio-sync toolkit: it takes a normalized amplitude curve and hands it out as a list of floats you can actually feed a weights-hungry consumer. If you've ever stared at an audio-reactive AnimateDiff workflow wondering how the music turns into "motion strength over time," this is one of the links in that chain.

The wider context matters here. Audio-reactive AnimateDiff - the kind of workflow that still has a cult following even after Wan took over - works by letting the music drive per-frame parameters: ControlNet apply strength, IPAdapter reference switching, AnimateDiff motion amount. The people who do this well describe it exactly that way: use those weights to manipulate the amount of control and amount of motion. The missing piece is almost always a clean way to convert "how loud is the audio right now" into "how strong should this parameter be." That's what this node does.

How it works

The whole implementation is a one-liner: return (list(normalized_amp),). It takes the NORMALIZED_AMPLITUDE array - an amplitude curve produced by an upstream audio-analysis node, normalized to roughly 0–1 - and returns it as a Python list of floats. No math, no smoothing, no scaling. It's a type conversion dressed up as a node.

One honest caveat about the schema: comfy.icu lists the weights output as a plain FLOAT, but the source clearly returns a list of floats - one per amplitude sample. That's deliberate, because that's what the downstream nodes in this pack expect. Treat the output as a list, not a single number, and you'll be fine.

Inputs and outputs

Just one of each:

  • normalized_amp (required) - the amplitude curve from your audio-analysis node, same NORMALIZED_AMPLITUDE type the whole pack works with.
  • weights - the output. A float list, one value per amplitude sample, matching the length of whatever curve you put in.

Typical wiring: audio analysis → NORMALIZED_AMPLITUDE → Amplitude To Weights → feed the list into a weights consumer, or into Isaac's own Weights List to Weights when you need a single float pulled out of the list.

How to install it

ComfyUI Manager → Install Custom Nodes → search "Isaac's Nodes" (or ComfyUI_IsaacNodes) → install → restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/iemesowum/ComfyUI_IsaacNodes
cd ComfyUI_IsaacNodes
pip install -r requirements.txt

The pack's one dependency, openunmix[stempeg], is for the audio unmixer - this node never touches it, but the install brings it along anyway.

Common issues

The usual stumble is expecting the node to do more than it does. It won't smooth, threshold, or normalize anything for you - the name is a lie, it's a cast, not a converter with opinions. If your amplitude signal is noisy, fix that upstream before you get here.

And remember the upstream requirement: this node can't make a NORMALIZED_AMPLITUDE value appear. You need an audio-analysis node from elsewhere in the ecosystem to produce it. Isaac's pack is a helper pack; it assumes you've already got the amplitude side sorted. Once you do, Amplitude To Weights is the boring, reliable bridge that makes the rest of the chain work.

CategoryIsaac's Nodes

Inputs (1)

NameTypeDefaultDescription
normalized_ampNORMALIZED_AMPLITUDE

Outputs (1)

NameTypeDescription
weightsFLOAT