Apply Easing to Floats
Shape the floats you already have, instead of generating new ones
- floats_in
- eased_floats
Apply Easing to Floats is Ease Curve's quieter sibling, and it answers a different question. Ease Curve generates an eased sequence from scratch; this node takes a float list you already have and reshapes it through an easing curve. Same easing engine, opposite direction of flow - and that makes it the node you reach for when the values aren't the problem, the timing shape is.
The classic use is audio-reactive work: the pack's own AudioReactiveTransform is designed to be fed by an "Audio Analysis"–style node that emits raw FLOATS weights, and raw weights are jumpy and spiky. Feed them through ApplyEasingToFloats with easeOutQuad and the motion smooths into something a human eye reads as intentional. Same story for any existing keyframe list or LFO output - if the values exist but the feel is wrong, this is the fix.
Mechanically it's simple and honest: it finds the min and max of your input list, normalizes everything to [0, 1], pushes each value through the easing function, then scales back into the original range. That means it preserves your data's range and rough distribution while changing the shape of the curve between values. Flat input (where max ≈ min) passes through unchanged rather than dividing by zero - a defensive touch.
Inputs:
- floats_in (
FLOATS) - the list you're reshaping. Required. - preset - the same 32-entry dropdown as Ease Curve (linear, the quad/cubic/quart/quint families, sine, expo, circ, back, elastic, bounce, plus
custom). - x1, y1, x2, y2 - bezier control points for the
custompreset only. Defaults are the standard ease-in-out handles (0.42, 0, 0.58, 1).
One output, eased_floats (FLOATS), ready to feed whatever consumed the original.
It shares Ease Curve's best feature: the bundled JS extension draws a live canvas preview of the curve right on the node, redrawing as you change presets or control points. You can watch the shape change before you commit, which for animation work is genuinely worth having.
Install is the standard NodeSweet path - ComfyUI Manager → search "Batch BBox Detector" → Install, or:
cd ComfyUI/custom_nodes && git clone https://github.com/rslosch/comfyui-nodesweet
then restart. No models, no extra dependencies.
Worth knowing before you get fancy: because it normalizes and rescales, the output range is locked to your input range - you can't use this node to push values up to a new max. If you want a fresh eased ramp between arbitrary bounds, that's EaseCurve's job. And the back/elastic/bounce presets overshoot, which on an already-shaped list can push values outside the original min/max; the node rescales to fit, but the overshoot shows up in the curve itself. If your downstream node clamps hard, pick a milder preset.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| floats_in | FLOATS | — | |
| preset | COMBO | 32 options: custom, linear, easeInQuad, easeOutQuad, easeInOutQuad, easeInCubic, +26 | |
| x1opt | FLOAT | 0.420–1 | — |
| y1opt | FLOAT | 0.00-1–2 | — |
| x2opt | FLOAT | 0.580–1 | — |
| y2opt | FLOAT | 1.00-1–2 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| eased_floats | FLOATS | — |