Location Transform β‘π ‘π π £π
Animate a location with a Flex Feature
- locations
- feature
- LOCATION
This is the node where RyanOnTheInside's two big systems actually meet: it takes a LOCATION (from LocationFromMask or LocationFromPoint) and moves or scales it using a FEATURE - one of the pack's audio/motion/time-driven value curves. Instead of a static point, you get a point that translates or scales in sync with whatever's driving the feature: the beat of a song, a manual keyframed curve, motion in the frame, whatever you've fed it.
How it works
You wire in locations (the starting position or positions) and feature (the curve modulating them), pick a transformation_type - translate moves the location, scale scales it - and set transformation_value, which acts as the multiplier or offset the feature curve is scaled against. The feature value at each frame determines how much of that transformation gets applied on that frame, so a location that's static at frame 0 might drift, pulse, or scale up and down as the feature curve rises and falls across the batch.
This is the mechanism behind a lot of the pack's showier demos - a shape that grows when the audio gets loud, a point that drifts with motion in the scene. The LOCATION/FEATURE split is deliberate: any feature source (manual keyframes, audio analysis, motion detection) can drive any location-consuming node, so you build the "what changes" and the "what it changes" separately and wire them together.
The inputs and output
locations(required,LOCATION) - the starting point(s) to transform.feature(required,FEATURE) - the curve doing the modulating. Comes from nodes likeManualFeatureNode(hand-keyframed) or one of the pack's audio/motion-derived feature sources.transformation_type(required, enum) -translateorscale.transformation_value(required,FLOAT, default 1) - the scale factor or offset magnitude the feature curve is applied against.
Output is a single LOCATION - the transformed result, which you can feed into whatever downstream node consumes a location, or chain into another LocationTransform for a compound animation.
How to install it
The pack's README came back empty for install specifics, so use the standard path:
ComfyUI Manager: search "RyanOnTheInside", install, restart.
Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
Restart ComfyUI afterward.
Troubleshooting
If nothing appears to move, check that your feature curve is actually varying - a flat feature (all zeros, or a constant) produces a flat transform, which looks identical to the node not working at all. Wiring the feature into an InstantFloatPreview node first is the fastest way to confirm it's actually doing something before you blame this node. Since both locations and feature need to be per-frame to animate anything, a mismatch between how many frames your location covers and how many the feature curve covers is the other common snag - check batch_count on your location source and the frame range on your feature source line up. And remember transformation_value scales the effect, it doesn't replace the feature curve - cranking it up amplifies whatever the curve is already doing, it won't fix a flat curve.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| locations | LOCATION | Input locations to transform | |
| feature | FEATURE | Feature to modulate the transformation | |
| transformation_type | COMBO | Type of transformation ('translate' or 'scale') | |
| transformation_value | FLOAT | 1.00 | Scale factor for the transformation (default: 1.0) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LOCATION | LOCATION | β |