Organic Fill Mask Animation (Deprecated)
Skip It, Use the Replacement
- input_image
- seed_locations
- fill_mask
- SAM_map
- depth_map
- canny_map
- hed_map
- final_mask
- frames_preview
- grow_prob_map
- overlayed_fill_preview
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.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| input_image | IMAGE | Image whose color regions guide the growth. | |
| seed_locations | MASK | Where the fill starts. Empty mask = start at the image center. | |
| fill_maskopt | MASK | Only grow inside this mask. Defaults to the full image. | |
| SAM_mapopt | IMAGE | Flat-color segmentation map; growth avoids crossing segment borders. | |
| depth_mapopt | IMAGE | Depth map; growth avoids crossing depth edges. | |
| canny_mapopt | IMAGE | Canny edge map; growth avoids crossing edges. | |
| hed_mapopt | IMAGE | HED edge map; growth avoids crossing edges. | |
| n_framesopt | INT | 1001–10000 | Number of evenly spaced frames in the output animation. |
| max_stepsopt | INT | 50001–10000 | Maximum number of growth steps. |
| growth_thresholdopt | FLOAT | 0.900–1 | Pixels need a growth probability above this (relaxed by barrier_jump_power) to be filled. |
| barrier_jump_poweropt | FLOAT | 0.100–1 | How easily growth crosses low-probability barriers. 0 = strictly follow the probability map. |
| weight_labopt | FLOAT | 0.500–5 | Weight of the image color-similarity map. |
| weight_samopt | FLOAT | 1.500–5 | Weight of the SAM segment-border map. |
| weight_depthopt | FLOAT | 2.000–5 | Weight of the depth-edge map. |
| weight_cannyopt | FLOAT | 0.100–5 | Weight of the canny edge map. |
| weight_hedopt | FLOAT | 0.500–5 | Weight of the HED edge map. |
| seedopt | INT | 420–2147483647 | Random seed for the stochastic growth. |
| processing_resolutionopt | INT | 1024256–4096 | Longest side used for the simulation; outputs are scaled back to the input size. |
| saturation_windowopt | INT | 155–100 | Stop when the fill ratio barely changed over this many steps. |
| saturation_thresholdopt | FLOAT | 0.00000.000001–0.0001 | Fill ratio change per step below which growth counts as saturated. |
| circular_bias_strengthopt | FLOAT | 0.300–1 | How much to favor round, blob-like growth. |
| jitter_strengthopt | FLOAT | 0.200–1 | Random jitter for more organic edges. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| final_mask | MASK | Final filled mask. |
| frames_preview | IMAGE | Fill animation frames (first batch item). |
| grow_prob_map | MASK | Growth probability map. |
| overlayed_fill_preview | IMAGE | Fill animation overlaid in red on the input image. |