Nodes/ComfyUI S4Motion/đź’€Motion Scale
ComfyUI Node

đź’€Motion Scale

Zoom a layer in or out, with easing instead of a jump cut

By S4MUEL-404·Created about a year ago·Updated 11 months ago· 4
đź’€Motion Scale
    • Scale
    â—„default_scale1.0â–ş
    â—„target_scale1.0â–ş
    â—„duration1.00â–ş
    â—„delay0.00â–ş
    â—„motion_curvelinearâ–ş
    â—„inversefalseâ–ş
    â—„loopfalseâ–ş

    A slow push-in is the cheapest way to make a static image feel alive, and đź’€Motion Scale is how you do it in the S4Motion pack. It animates a layer's size from one value to another over a duration - your basic zoom, grow, or shrink, with the same easing controls as the other effectors.

    Like every effector node here, it doesn't render anything by itself. Its Scale output (an S4_SCALE_EFFECTOR) plugs into the scale_effector socket on đź’€Motion Config, which composites the frames. The node only computes the per-frame scale values.

    The inputs are the usual keyframe pair plus timing:

    • default_scale - starting size as a multiplier (0.1–10, default 1 = 100%).
    • target_scale - where it ends (default 1).
    • duration / delay - move time and lead-in pause, in seconds.
    • motion_curve - linear, ease_in, ease_out, ease_in_out. For a push-in you'll almost always want ease_in_out - it ramps up and settles instead of teleporting between speeds.
    • inverse - grow out and shrink back.
    • loop - repeat over the whole timeline.

    The one thing to remember: effector scale multiplies Motion Config's static scale. So default 1 here means "no change to the base." If Config has scale 2 and this node targets 0.5, the layer ends at 1.0 - the values compose, they don't replace each other.

    Also worth knowing: scale is applied around the layer's alignment point, the same way rotation is. And it's real resampling, not just moving a bigger image - Motion Config scales the layer image each frame, so it can get expensive at large sizes and long timelines. Keep your layer images reasonably small if you're scaling them up dramatically.

    Install

    cd ComfyUI/custom_nodes/
    git clone https://github.com/S4MUEL-404/ComfyUI-S4Motion.git
    pip install -r ComfyUI-S4Motion/requirements.txt
    

    or ComfyUI Manager → search "S4Motion" → install → restart. All nodes live under the 💀S4Motion category.

    The pack gets zero discussion on reddit, so the examples/Scale.json workflow is your best reference for wiring. It's a four-line node, honestly - set the from/to scale, pick a curve, plug it into Config, done.

    Categoryđź’€S4Motion

    Inputs (7)

    NameTypeDefaultDescription
    default_scaleFLOAT1.00.1–10—
    target_scaleFLOAT1.00.1–10—
    durationFLOAT1.000–30—
    delayFLOAT0.000–30—
    motion_curveCOMBOlinear4 options: linear, ease_in_out, ease_in, ease_out
    inverseBOOLEANfalse—
    loopBOOLEANfalse—

    Outputs (1)

    NameTypeDescription
    ScaleS4_SCALE_EFFECTOR—