Brightness To Float List | Akatz
Score every frame by how bright it is, 0 to 1
- image
- FLOAT
Brightness To Float List is the image-based cousin of the audio schedule nodes: it looks at each frame of an image batch and outputs one float per frame - the average brightness, normalized to 0 (black) to 1 (white). It's a tiny node that does one thing, and it's quietly useful for making animations react to visuals instead of audio.
The obvious use is driving effects from the content itself. A strobe or flash in the footage becomes a spike in the list; a scene change becomes a step. Feed the list into a dilation schedule, an IPAdapter weight list, or any per-frame parameter and your effect will pulse with the video's luminance. It's also a handy diagnostic: one look at the output list tells you the brightness envelope of a clip, which beats eyeballing 300 frames.
It's not magic, so set expectations: it's a global per-frame average, not a per-region measure and not a scene detector. Two completely different frames can have the same mean brightness. If you need "when did the screen flash," this is perfect; if you need "when did the subject move," use Blob Track instead.
How it works
In the source it's a couple of numpy operations: each frame is averaged across height, width, and channels, then divided by 255. If the input tensor is already in 0–1 float range it's scaled to 0–255 first so the normalization stays consistent. The output is a Python list of floats, one per frame, in order.
Inputs and output
image- an IMAGE batch (also accepts a single image; you get a one-element list).- Output is a FLOAT list, length = batch size, values in [0, 1].
That's the whole surface area. No thresholds, no sliders - just a number per frame.
Installing it
Part of akatz-ai/ComfyUI-AKatz-Nodes. Install via ComfyUI Manager (search "AKatz") or:
cd ComfyUI/custom_nodes
git clone https://github.com/akatz-ai/ComfyUI-AKatz-Nodes
cd ComfyUI-AKatz-Nodes
pip install -r requirements.txt
Restart ComfyUI. No model downloads; requirements are numpy, torch, opencv-python and pydub.
Common issues
The main thing to watch is batch order: the list follows your frame order, so if your batch is shuffled or reordered upstream the "brightness story" won't line up with the frames you think you're scoring. And since values are averaged across the whole frame, a bright logo on a black background gives a low score even though something is clearly "bright" - that's the global-average limitation biting. If your downstream node needs a different length, run the result through Adjust List Size.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| FLOAT | FLOAT | — |