đź’€Motion Scale
Zoom a layer in or out, with easing instead of a jump cut
- Scale
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 wantease_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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| default_scale | FLOAT | 1.00.1–10 | — |
| target_scale | FLOAT | 1.00.1–10 | — |
| duration | FLOAT | 1.000–30 | — |
| delay | FLOAT | 0.000–30 | — |
| motion_curve | COMBO | linear | 4 options: linear, ease_in_out, ease_in, ease_out |
| inverse | BOOLEAN | false | — |
| loop | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Scale | S4_SCALE_EFFECTOR | — |