ComfyUI Node

Ease Curve

The node that puts an actual curve preview on your easing

By rslosh·Created 11 months ago·Updated 5 months ago· 1
Ease Curve
    • eased_values
    preset
    steps30
    value_min0.00
    value_max1.00
    x10.42
    y10.00
    x20.58
    y21.00

    Ease Curve is the part of NodeSweet that makes animation feel less like stabbing in the dark. It generates a list of floats - FLOATS - that ramp from a start value to an end value along an easing curve, and it draws the actual curve on the node so you can see what you're about to feed the rest of your workflow. If you've ever manually typed out keyframe strengths or squinted at a camera-motion node, this is the node that replaces the guesswork.

    The idea: animation timings are almost never linear. A camera that starts slow and eases into motion looks intentional; a linear ramp looks like a machine. Ease Curve gives you 32 presets covering the standard easing library from easings.net - easeInQuad/easeOutQuad/easeInOutQuad, through cubic, quart, quint, sine, expo, circ, and the showy back, elastic, and bounce families - plus a custom mode where you shape your own curve with cubic-bezier control points.

    How it works mechanically: pick a preset and a steps count (2 to 10000, default 30), and the node walks t = i / (steps-1), pushes each value through the easing function, and scales the result from value_min to value_max. So 30 steps from 0.0 to 1.0 with easeOutCubic gives you 30 floats that start fast and taper - exactly what you'd feed a per-frame parameter.

    The inputs that matter:

    • preset - the 32-entry dropdown, custom included.
    • steps - how many values come out. Match this to your frame count for per-frame animation.
    • value_min / value_max - the range your curve spans (default 0 → 1).
    • x1, y1, x2, y2 - bezier control points, but only for the custom preset. Defaults 0.42, 0, 0.58, 1 are the classic ease-in-out handles.

    One output, eased_values (FLOATS), which you wire into anything that eats a float list - camera/transform nodes, CFG or strength schedules, audio-reactive setups, the pack's own ApplyEasingToFloats-style flows.

    The nice part is the UI. NodeSweet ships a small JavaScript extension (in the pack's js/ folder) that attaches a live canvas preview to EaseCurve - an SVG-style curve plot that redraws as you change presets or drag the bezier points. You get a real "is this easing in or out" visual instead of a number salad. It's a small touch, but it's the reason this node beats typing values blind.

    Install: ComfyUI Manager → search "Batch BBox Detector" → Install, or

    cd ComfyUI/custom_nodes && git clone https://github.com/rslosch/comfyui-nodesweet
    

    then restart. Pure Python plus the bundled JS - no models, no heavy deps. Gotchas are mild: elastic and bounce presets overshoot the 0–1 range (that's what back-family curves do), so if your downstream node clamps or misbehaves at values above 1, that's a feature of the curve, not a bug. And 10000 steps is a lot of floats - fine for the node, but be sure the thing you're feeding can take a list that long.

    Categorynodesweet-hellorob

    Inputs (8)

    NameTypeDefaultDescription
    presetCOMBO32 options: custom, linear, easeInQuad, easeOutQuad, easeInOutQuad, easeInCubic, +26
    stepsINT302–10000
    value_minoptFLOAT0.00-1000000–1000000
    value_maxoptFLOAT1.00-1000000–1000000
    x1optFLOAT0.420–1
    y1optFLOAT0.00-1–2
    x2optFLOAT0.580–1
    y2optFLOAT1.00-1–2

    Outputs (1)

    NameTypeDescription
    eased_valuesFLOATS