Batch Float Normalize (mtb)
Rescale any float list to 0–1
- floats
- normalized_floats
This is the plumbing node you reach for right after something else in MTB Nodes' batch toolkit hands you a FLOATS list that isn't in the range you need. It does exactly one thing: min-max normalize a list of floats so the smallest value becomes 0, the largest becomes 1, and everything else scales proportionally in between.
Why you'd want this
A lot of animation-curve nodes in this pack - and elsewhere in ComfyUI - output values in whatever range is natural to their source: pixel-tracking coordinates, raw noise amplitudes, a Batch Shake output describing rotation in degrees, a curve you drew by hand with arbitrary Y values. But plenty of consumers of a FLOATS list expect a clean 0–1 range - opacity, blend strength, a mask multiplier, a denoise scale. Rather than manually figuring out the min and max of whatever list you're holding and building a remap by hand, this node just does it for you in one step.
The input and output that matter
There's really one input: floats, the FLOATS list you want rescaled. No knobs, no options - it finds the min and max of the list itself and stretches everything to fit 0–1.
The output is normalized_floats, another FLOATS list, same length, same order, now bounded 0–1. Wire it into whatever needed that range - a mask strength, a schedule multiplier, or a node that expects normalized input before it does its own scaling internally.
Installing it
Through ComfyUI Manager: search MTB Nodes, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/melMass/comfy_mtb
then restart ComfyUI. No dependencies beyond the base pack - this is a small, self-contained math node.
Common issues
The one real gotcha with min-max normalization, and it applies here like anywhere else: if every value in your list is identical, there's no range to normalize against, and you'll get either a flat 0 output or a divide-by-zero depending on how the node guards it - worth a quick sanity check with a Debug node on the input before you build a whole schedule on top of it.
Beyond that, the failure mode is the same one that shows up across this whole pack: MTB doesn't crash on a single broken node, it logs [comfy_mtb] Some nodes (N) could not be loaded at startup and a pointer to http://127.0.0.1:8188/mtb, then keeps the rest of the pack running - a behavior other users have run into and confirmed. If this node (or any mtb node) is missing from your search after install, check that line first rather than assuming the whole pack failed to install.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| floats | FLOATS | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| normalized_floats | FLOATS | — |