Nodes/RyanOnTheInside/Flex Mask Emanating Rings βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

Flex Mask Emanating Rings βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Sonar-ping ripples radiating out from your mask

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Flex Mask Emanating Rings βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • masks
  • opt_feature
  • MASK
β—„strength1.00β–Ί
β—„feature_threshold0.00β–Ί
β—„feature_paramβ–Ύβ–Ί
β—„feature_moderelativeβ–Ί
β—„invertfalseβ–Ί
β—„subtract_original0.00β–Ί
β—„grow_with_blur0.0β–Ί
β—„mask_strength1.00β–Ί
β—„ring_speed0.05β–Ί
β—„ring_width0.20β–Ί
β—„ring_falloff0.50β–Ί
β—„binary_modefalseβ–Ί

This is one of the more purely decorative nodes in the pack's mask family - instead of reshaping your source mask's edges, it generates concentric rings that propagate outward from it over the course of your sequence, like a sonar ping or a stone dropped in water. Feed it a subject mask and it turns that subject into an emitter of expanding rings, which is a fun effect on its own and a genuinely useful one paired with an audio FEATURE for a beat-synced pulse radiating off a person or object.

How it works

ring_speed controls how fast the rings expand outward per frame, ring_width sets how thick each ring is, and ring_falloff controls how quickly a ring fades as it travels - low falloff keeps rings visible far from the source, high falloff makes them fade fast, closer in. binary_mode switches between smooth, soft-edged gradient rings (off) and hard black-and-white rings (on). All three of the ring-specific parameters - speed, width, falloff - are available as feature_param targets, so an audio or motion signal can drive the pulse rate or thickness in real time instead of holding one constant rhythm for the whole clip. The same post-processing set as the rest of the Flex mask family sits on top: invert, subtract_original, grow_with_blur, and mask_strength.

Inputs and outputs that matter

  • masks (required, MASK) - the source shape the rings emanate from.
  • ring_speed (default 0.05, 0.01–0.2) - propagation speed.
  • ring_width (default 0.2, 0.01–0.5) - thickness of each ring.
  • ring_falloff (default 0.5, 0–1) - how fast a ring fades as it travels outward.
  • binary_mode - smooth gradient rings vs. hard-edged rings.
  • opt_feature (optional, FEATURE) - drive ring speed, width, or falloff reactively.
  • Output - a single MASK.

Installing it

Via ComfyUI Manager: search "RyanOnTheInside," install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside.git
cd ComfyUI_RyanOnTheInside
pip install -r requirements.txt

then restart. Pure procedural generation on the mask - no model weights.

Common issues & troubleshooting

Rings look static or barely visible across the clip. This is a sequence effect - the rings need frames to actually propagate outward. On a single still image, or a very short clip, you likely won't see the expansion at all. Give it more frames, or push ring_speed up, before assuming it's not working.

Rings never seem to fade. Check ring_falloff - a low value keeps rings visible far out, which can read as "not fading" if your canvas or subject is large relative to the ring width. Push it up for rings that die out closer to the source.

Beat-synced pulse feels sluggish or mistimed. Ring propagation and your feature's timing are two separate clocks - ring_speed sets how fast a ring physically expands, while the feature only nudges that value up or down per-frame. If the pulse doesn't feel locked to the beat, it's worth checking your feature extractor's own smoothing/threshold settings before assuming this node's parameters are wrong.

CategoryRyanOnTheInside/FlexFeatures/Targets/Masks

Inputs (14)

NameTypeDefaultDescription
strengthFLOAT1.000–1Overall strength of the feature modulation (0.0 to 1.0)
feature_thresholdFLOAT0.000–1Threshold for feature activation (0.0 to 1.0)
feature_paramCOMBOChoose which parameter to modulate: - ring_speed: Dynamically adjust propagation speed - ring_width: Dynamically adjust ring thickness - ring_falloff: Dynamically adjust ring fade rate - None: No parameter modulation
feature_modeCOMBOrelativeHow to apply the feature modulation: - relative: Changes are centered around the original value - absolute: Changes scale directly from zero to the maximum
masksMASKInput mask or sequence of masks to be processed (MASK type)
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)
mask_strengthFLOAT1.000–1Overall strength of the mask effect (0.0 to 1.0)
ring_speedFLOAT0.050.01–0.2Speed of ring propagation (0.01 to 0.2)
ring_widthFLOAT0.200.01–0.5Width of each ring (0.01 to 0.5)
ring_falloffFLOAT0.500–1Rate at which rings fade out (0.0 to 1.0)
binary_modeBOOLEANfalseWhether to output binary rings instead of smooth gradients
opt_featureoptFEATUREOptional feature input for modulation Connect any feature node here to control the effect. Features can come from audio, motion, color, or other sources.

Outputs (1)

NameTypeDescription
MASKMASKβ€”