Mask Transform [DEPRECATED] β‘π ‘π π £π
Translate/rotate/scale a mask over time (deprecated)
- masks
- MASK
Third of the pack's TemporalMasks trio, and like MaskMorph and MaskRings, its display name carries the pack's own [DEPRECATED] tag. If you're starting fresh, check ComfyUI Manager for a newer node covering the same ground in this pack before building around this one. If you're maintaining an existing workflow that already uses it, here's how it behaves.
It moves, rotates, or scales a mask over time, using the same time-based animation envelope shared across the pack's TemporalMasks family - a start/end frame window, a duration, an easing curve, and an optional forward-then-reverse playback.
How it works
transform_type picks the operation: translate shifts the mask, rotate spins it, scale resizes it. x_value and y_value (each -1000 to 1000) supply the transformation's magnitude - for translate that's a pixel offset, for the others they act as the transform's horizontal/vertical components. The rest is the shared envelope you'll recognize from MaskMorph and MaskRings: start_frame/end_frame bound when the transform is active, effect_duration sets how long the ramp takes, temporal_easing (ease_in_out, linear, bounce, elastic, none) shapes it, and palindrome makes it play forward then reverse instead of holding at the end. strength, invert, subtract_original, and grow_with_blur round out the fine-tuning, same as the other two nodes in this family.
The inputs that matter
masks- the mask sequence being transformed.transform_type-translate,rotate, orscale.x_value/y_value- the transformation's magnitude, meaning shifts by type.start_frame/end_frame/effect_duration/temporal_easing/palindrome- the animation envelope.
Output is a single MASK.
If you're not sure which of the three temporal mask nodes to reach for: MaskMorph reshapes a mask's edges (erode/dilate/open/close), MaskRings generates new geometry around it (concentric rings), and this one moves the mask's existing shape around in space without altering the shape itself. Same envelope, three different operations on top of it.
How to install it
The pack's README came back empty for install specifics, so the standard path applies:
ComfyUI Manager: search "RyanOnTheInside", install, restart.
Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
Restart ComfyUI afterward.
Troubleshooting
Given the deprecated status, worth a quick look at ComfyUI Manager's node list for a modern replacement before sinking time into debugging this one for a new build. If nothing seems to move, the usual culprit across this whole family is the start_frame/end_frame/effect_duration trio not lining up the way you expect - end_frame defaulting to 0 (meaning "until the end" per its tooltip) is the easiest one to trip on. If rotate or scale looks wrong, remember x_value/y_value mean different things depending on transform_type - they're not always literal x/y pixel offsets, so double-check which mode you're in before assuming the numbers themselves are wrong. And if palindrome doesn't seem to be reversing anything, check effect_duration isn't set to 0 - a zero duration collapses the whole ramp-and-reverse into effectively no animation at all, since there's no window for the reverse half to play out in.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| masks | MASK | Input mask or sequence of masks to be processed (MASK type) | |
| strength | FLOAT | 1.000β1 | Overall strength of the mask effect (0.0 to 1.0) |
| invert | BOOLEAN | false | When enabled, inverts the mask output (black becomes white and vice versa) |
| subtract_original | FLOAT | 0.000β1 | Amount of the original mask to subtract from the result (0.0 to 1.0) |
| grow_with_blur | FLOAT | 0.00β10 | Amount of Gaussian blur to apply for mask growth (0.0 to 10.0) |
| start_frame | INT | 00β1000 | Frame number where the effect begins (0 to 1000) |
| end_frame | INT | 00β1000 | Frame number where the effect ends (0 to 1000, 0 means until end) |
| effect_duration | INT | 00β1000 | Number of frames over which the effect is applied (0 to 1000, 0 means full range) |
| temporal_easing | COMBO | Controls how the effect strength changes over time ('ease_in_out', 'linear', 'bounce', 'elastic', 'none') | |
| palindrome | BOOLEAN | false | When enabled, the effect plays forward then reverses within the specified duration |
| transform_type | COMBO | Type of transformation to apply ('translate', 'rotate', 'scale') | |
| x_value | FLOAT | 0.0-1000β1000 | Horizontal component of the transformation (-1000 to 1000) |
| y_value | FLOAT | 0.0-1000β1000 | Vertical component of the transformation (-1000 to 1000) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MASK | MASK | β |