Minority Mask Regions
Keep only the smallest blob, not the biggest
- masks
- MASKS
This is the mirror image of SaltMaskDominantRegion, and it's the less obvious one to reach for - most of the time you're cleaning up a mask, you want to keep the big subject and discard the noise, which is what Dominant does. Minority does the opposite: it throws away the biggest blob and keeps only the smallest surviving region. That's a genuinely narrower use case, so it's worth being honest about when you'd actually want it: isolating a stray artifact so you can inspect or remove it specifically, or pulling out the one small detail in a multi-object mask when the small thing is the thing you actually care about (a distant object, a tiny prop, a blemish a detection model flagged as its own region).
How it works
Same mechanism as Dominant Region: binarize the mask with threshold, run connected-component analysis to find every isolated blob, measure area - and here, keep the smallest region instead of the largest. Everything else, including whatever was the dominant blob, gets zeroed.
The inputs and outputs that matter
masks(required) - needs more than one connected region to do anything meaningful; on a single-blob mask this either returns that one blob or an empty mask, and it's worth checking which on your own input since that edge case isn't documented anywhere.threshold(default 128, range 0–255) - same 8-bit scale as its sibling node, not the 0.0–1.0 float scale ComfyUI normally uses for masks. This decides what counts as "on" before regions get measured, so a threshold set too low can merge two nearby blobs into one region and quietly change which one counts as smallest.
Output: MASKS, same dimensions as input, holding only the minority region.
How to install it
Same repo as every other SaltAI masking node: get-salt-AI/SaltAI, a.k.a. "SaltAI-Open-Resources," from Salt AI (getsalt.ai) - a company that in March 2024 built infrastructure for running ComfyUI workflows as Discord bots and, later, an API. The masking and list-scheduling nodes were the general-purpose grab-bag riding alongside their platform-specific ones.
Worth flagging plainly: the repo at github.com/get-salt-AI/SaltAI currently returns a 404. It's gone from the org's repo listing, and it doesn't show up in ComfyUI Manager's node index either - so the normal "search in Manager, install, restart" path and the fallback git clone both come up empty right now. If you're trying to add this fresh and hitting a wall, that's the reason, not a mistake in your setup. Community discussion of the "Salt AI" platform itself trailed off after early 2025, which lines up with the repo going quiet. If it's already installed in your environment, it'll keep working fine - there's nothing about the node itself that phones home or depends on the platform being alive. It's a pure local mask op with no model downloads and no unusual dependencies.
Common issues & troubleshooting
You expected it to keep the "important" region and it kept the tiniest speck instead. That's the node doing exactly what it's named for - smallest area, no exceptions, no concept of "important." If what you actually want is a specific region regardless of size, use SaltMaskRegionSplit and grab it by output socket, or use SaltMaskDominantRegion if what you actually want is the biggest one.
Nothing came out, or the mask is empty. Check your threshold first - set too aggressively, it can binarize your whole mask into a single region (in which case there's no "minority" left to isolate) or into nothing at all. Nudge it and re-check with a Preview Image node between this and whatever's downstream.
You're chasing noise, and this is the wrong direction. If your actual goal is removing small stray specks from an otherwise-clean subject mask, that's SaltMaskDominantRegion's job, not this one - Minority keeps the speck and drops the subject, which is the opposite of cleanup.
No documented behavior beyond the class name and parameter list. The README doesn't cover individual nodes, so if you're unsure exactly how it handles ties or edge cases on your specific mask, the fastest way to know is to test it directly rather than assume.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| masks | MASK | — | |
| threshold | INT | 1280–255 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MASKS | MASK | — |