Nodes/Eden.art nodesuite/[DEPRECATED] Organic Fill Mask Animation
ComfyUI Node Runs on cloud

[DEPRECATED] Organic Fill Mask Animation

Skip It, Use the Replacement

By edenartlabΒ·Created 3 years agoΒ·Updated 6 months agoΒ· 119
[DEPRECATED] Organic Fill Mask Animation
  • input_image
  • seed_locations
  • fill_mask
  • SAM_map
  • depth_map
  • canny_map
  • hed_map
  • final_mask
  • frames_preview
  • grow_prob_map
  • overlayed_fill_preview
β—„n_frames100β–Ί
β—„max_steps5000β–Ί
β—„growth_threshold0.90β–Ί
β—„barrier_jump_power0.10β–Ί
β—„weight_lab0.50β–Ί
β—„weight_sam1.50β–Ί
β—„weight_depth2.00β–Ί
β—„weight_canny0.10β–Ί
β—„weight_hed0.50β–Ί
β—„seed42β–Ί
β—„processing_resolution1024β–Ί
β—„saturation_window15β–Ί
β—„saturation_threshold0.0000β–Ί
β—„circular_bias_strength0.30β–Ί
β—„jitter_strength0.20β–Ί

Straight answer first: this node is deprecated, and the pack itself says so - the display name is literally "[DEPRECATED] Organic Fill Mask Animation." Don't build a new workflow on it. The mechanism it introduced lives on in Eden_OrganicFillAnimation (also in this pack), which is the maintained version. If an old workflow you found on the web loads this node, swap it out before you go deep.

So what was it? Organic fill is a mask-growth technique: you give it an image and a seed_locations mask (where growth starts), and it grows a fill outward from those seeds, frame by frame, trying to stop at natural region boundaries. The clever part is what steers the growth. It's a confidence-weighted blend of cues:

  • LAB color similarity (weight_lab) - pixels that match the seed region's color grow freely; mismatches resist.
  • SAM map (weight_sam) - a segmentation probability map acts as a hard barrier. This is the big one; a real object-boundary map keeps the fill from bleeding across edges.
  • Depth (weight_depth) - depth discontinuities are strong boundaries.
  • Canny (weight_canny) and HED (weight_hed) - edge maps, tuned low by default because raw edges are noisy.

All of those maps are optional - wire in the ones you have. Growth itself is stochastic: per-pixel grow probabilities plus growth_threshold, circular_bias_strength (a preference for growing in rings), and jitter_strength (randomness) produce organic, non-uniform edges that look hand-painted rather than machine-cut. n_frames gives you an animation of the fill spreading, and processing_resolution trades speed against detail - this thing is compute-hungry, so 1024 default is a sensible starting point.

Outputs were final_mask (the last frame's mask), frames_preview (the animation), grow_prob_map (the raw probability field), and overlayed_fill_preview (mask over the input image).

Why it got deprecated

It was an experimental research-y node, and the Eden team consolidated the organic-fill work into the organic_fill_nodes.py module with a cleaner, faster implementation. The replacement keeps the same idea - seed-driven, confidence-weighted organic mask growth - with better defaults and, in the newer Eden_OrganicFillRandom, a way to randomize seed placement instead of hand-drawing it.

Installing it / what to do instead

It ships in the Eden.art nodesuite, so installation is the pack standard:

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

Restart, then search for Eden_OrganicFillAnimation instead - same category (Eden 🌱/Experimental), same job, maintained. Honestly, for most real workflows you'd be better served by simpler mask tools: if you just need a region mask, MaskFromRGB_KMeans gets you there with one input and no SAM model to feed. Organic fill earns its complexity only when you specifically want the animated, organic-looking spread - and in that case, use the non-deprecated sibling.

CategoryEden 🌱/Experimental

Inputs (22)

NameTypeDefaultDescription
input_imageIMAGEβ€”
seed_locationsMASKβ€”
fill_maskoptMASKβ€”
SAM_mapoptIMAGEβ€”
depth_mapoptIMAGEβ€”
canny_mapoptIMAGEβ€”
hed_mapoptIMAGEβ€”
n_framesoptINT1001–10000β€”
max_stepsoptINT50001–10000β€”
growth_thresholdoptFLOAT0.900–1β€”
barrier_jump_poweroptFLOAT0.100–1β€”
weight_laboptFLOAT0.500–5β€”
weight_samoptFLOAT1.500–5β€”
weight_depthoptFLOAT2.000–5β€”
weight_cannyoptFLOAT0.100–5β€”
weight_hedoptFLOAT0.500–5β€”
seedoptINT420–2147483647β€”
processing_resolutionoptINT1024256–4096β€”
saturation_windowoptINT155–100β€”
saturation_thresholdoptFLOAT0.00000.000001–0.0001β€”
circular_bias_strengthoptFLOAT0.300–1β€”
jitter_strengthoptFLOAT0.200–1β€”

Outputs (4)

NameTypeDescription
final_maskMASKβ€”
frames_previewIMAGEβ€”
grow_prob_mapMASKβ€”
overlayed_fill_previewIMAGEβ€”