Nodes/RyanOnTheInside/Mask Rings [DEPRECATED] βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

Mask Rings [DEPRECATED] βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Concentric rings from a mask, animated over time (deprecated)

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Mask Rings [DEPRECATED] βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • masks
  • MASK
β—„strength1.00β–Ί
β—„invertfalseβ–Ί
β—„subtract_original0.00β–Ί
β—„grow_with_blur0.0β–Ί
β—„start_frame0β–Ί
β—„end_frame0β–Ί
β—„effect_duration0β–Ί
β—„temporal_easingβ–Ύβ–Ί
β—„palindromefalseβ–Ί
β—„num_rings10β–Ί
β—„max_ring_width0.10β–Ί

Like its sibling MaskMorph, this node's own display name is tagged [DEPRECATED] by the pack itself. Worth checking ComfyUI Manager for whatever's replaced it in this pack before leaning on it for a new build - but since existing workflows may still call it, here's what it does.

It generates concentric rings radiating out from your mask, then runs them through the same time-based animation envelope the pack's other TemporalMasks nodes share (MaskMorph, MaskTransform). Think ripple, pulse, or radar-sweep effects growing out of a masked region over a frame range.

How it works

num_rings (1–50) sets how many concentric rings get generated, and max_ring_width (0.01–0.5, as a fraction of the total distance) caps how thick each ring is. Everything else is the shared temporal envelope: start_frame/end_frame bound when the effect is active, effect_duration controls how long the ramp takes, temporal_easing (ease_in_out, linear, bounce, elastic, none) shapes that ramp, and palindrome makes it play forward then reverse instead of just forward. strength, invert, subtract_original, and grow_with_blur give you the same fine-tuning knobs as the pack's other temporal mask nodes.

If you've read the MaskMorph or MaskTransform articles in this pack, you've already seen most of these parameters - it's the same underlying animation-envelope framework, with a different generator (rings instead of erode/dilate or translate/rotate/scale) bolted on.

The inputs that matter

  • masks - the source mask sequence the rings radiate from.
  • num_rings - how many rings to generate.
  • max_ring_width - how thick each ring gets, as a fraction of the total distance.
  • start_frame / end_frame / effect_duration / temporal_easing / palindrome - the animation envelope.

Output is a single MASK.

Of the three temporal mask nodes in this pack, this is the one that adds new shape rather than reshaping or moving what's already there: MaskMorph reshapes the mask's edges, MaskTransform repositions it, and MaskRings generates fresh ring geometry radiating outward. If you're after a ripple-out or radar-sweep look specifically, this is the one built for it - the other two won't get you there without a lot of manual layering.

How to install it

The pack's README came back empty for install specifics, so the standard path applies here too:

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 tag, check whether the pack ships an updated equivalent before you invest much time debugging this one. If the rings look too thin or too subtle to see, max_ring_width is the first knob to check - it's capped at 0.5, so extremely wide rings aren't possible by design, only up to half the total distance. If the animation isn't visibly ramping at all, revisit start_frame/end_frame/effect_duration together rather than any one alone - with end_frame defaulting to 0 (meaning "until the end" per the node's own tooltip), a mismatch between your expected window and the actual one is the most common source of "nothing seems to be happening." One more thing worth checking if the rings look choppy rather than smooth: that's temporal_easing set to none, which steps rather than eases - switch to ease_in_out or linear if you want a continuous ramp instead of a hard cut.

CategoryRyanOnTheInside/Masks/TemporalMasks

Inputs (12)

NameTypeDefaultDescription
masksMASKInput mask or sequence of masks to be processed (MASK type)
strengthFLOAT1.000–1Overall strength of the mask effect (0.0 to 1.0)
invertBOOLEANfalseWhen enabled, inverts the mask output (black becomes white and vice versa)
subtract_originalFLOAT0.000–1Amount of the original mask to subtract from the result (0.0 to 1.0)
grow_with_blurFLOAT0.00–10Amount of Gaussian blur to apply for mask growth (0.0 to 10.0)
start_frameINT00–1000Frame number where the effect begins (0 to 1000)
end_frameINT00–1000Frame number where the effect ends (0 to 1000, 0 means until end)
effect_durationINT00–1000Number of frames over which the effect is applied (0 to 1000, 0 means full range)
temporal_easingCOMBOControls how the effect strength changes over time ('ease_in_out', 'linear', 'bounce', 'elastic', 'none')
palindromeBOOLEANfalseWhen enabled, the effect plays forward then reverses within the specified duration
num_ringsINT101–50Number of rings to generate (1 to 50)
max_ring_widthFLOAT0.100.01–0.5Maximum width of each ring as a fraction of the total distance (0.01 to 0.5)

Outputs (1)

NameTypeDescription
MASKMASKβ€”