NormalizedAmplitudeToMask
Draw a shape that pulses to the beat
- normalized_amp
- MASK
Same bridge premise as its sibling Normalized Amplitude To Float List - this one also consumes a NORMALIZED_AMPLITUDE value from the separate AudioScheduler pack - but instead of handing you a bare float, it draws an actual shaped mask whose intensity tracks the sound level. Point it at a loud bass hit and you get a mask that's fully "on"; point it at a quiet passage and the mask dims. It's the node you reach for when you want an audio-reactive spotlight, a pulsing inpaint region, or a beat-synced compositing element, rather than just a number to feed a strength slider somewhere else.
The inputs and outputs that matter
There are more knobs here than most KJNodes utilities, but they group cleanly:
normalized_amp- the amplitude value from AudioScheduler, same requirement as the float-list version.width/height(default 512 each) - the size of the mask canvas.location_x/location_yandsize- where the shape sits and how big it is.shape-none,circle,square, ortriangle.noneskips the cutout and floods the canvas instead of drawing a bounded shape.color-white(a hard on/off shape) oramplitude(the shape's brightness scales continuously with the sound level - this is the one that actually looks like it's reacting, rather than just switching on and off).frame_offset- shifts which amplitude frame this mask reads, so you can stagger multiple reactive layers to fire slightly ahead of or behind each other instead of everything moving in perfect lockstep.
How to install it
Two packs, same as the float-list version: KJNodes via ComfyUI Manager (search "KJNodes for ComfyUI") or manual clone (git clone https://github.com/kijai/ComfyUI-KJNodes into custom_nodes, then pip install -r ComfyUI-KJNodes/requirements.txt, restart), plus a1lazydog/ComfyUI-AudioScheduler installed separately to actually produce the normalized_amp input. Neither pack pulls in the other automatically - you need both, and it's an easy thing to forget the second half of when a Manager search only surfaces the first.
Common issues & troubleshooting
No connectable source for normalized_amp. Same story as the float-list node: install AudioScheduler if you haven't, and confirm its analysis node is actually wired up and running before you touch anything here.
color: white looks static even though the audio is clearly moving. That's expected - white gives you a binary on/off shape, not a graded one. If you want the visible pulsing effect, switch to amplitude.
Set width/height conservatively if you're running this live. This is meant to run every queued frame in an autoqueue loop for real-time reactive visuals, and redrawing a large mask on every single frame has a cost. Keep the canvas modest while you're dialing in the look, then scale up once you know the settings you want.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| normalized_amp | NORMALIZED_AMPLITUDE | — | |
| width | INT | 51216–4096 | — |
| height | INT | 51216–4096 | — |
| frame_offset | INT | 0-255–255 | — |
| location_x | INT | 2560–4096 | — |
| location_y | INT | 2560–4096 | — |
| size | INT | 1288–4096 | — |
| shape | COMBO | none | 4 options: none, circle, square, triangle |
| color | COMBO | amplitude | 2 options: white, amplitude |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MASK | MASK | — |