Skip to content

mask

Generate binary masks from images using text keywords.

Usage

bash
datasety mask --input ./dataset --output ./masks --keywords "face,hair"

Supported Models

ModelDescription
sam3 (default)SAM 3 — native text prompting, best quality
sam2Grounding DINO + SAM 2 — most battle-tested
clipsegCLIPSeg — lightweight, no extra deps beyond transformers

Options

OptionDescriptionDefault
--input, -iInput directory(required*)
--output, -oOutput directory for masks(required*)
--input-imageSingle input image
--output-imageSingle output mask
--keywords, -kComma-separated keywords(required)
--modelsam3, sam2, clipsegsam3
--deviceauto, cpu, cuda, or mpsauto
--thresholdConfidence threshold (0.0-1.0)0.3
--paddingPixels to expand mask (dilation)0
--blurGaussian blur radius for edges0
--invertInvert mask colorsfalse
--namingfolder or suffix (_mask)folder
--output-formatpng, jpg, webppng
--skip-existingSkip images with existing masksfalse
--dry-runPreview without savingfalse
--recursive, -RSearch input directory recursivelyfalse
--progressShow tqdm progress barfalse

Examples

bash
# SAM 3 (default)
datasety mask -i ./dataset -o ./masks -k "face,hair" --device cuda

# CLIPSeg (lightweight)
datasety mask -i ./dataset -o ./masks -k "face" --model clipseg --threshold 0.5

# SAM 2 with refinement
datasety mask -i ./dataset -o ./masks -k "hat,glasses" --model sam2 --padding 5 --blur 3

# Suffix mode (saves alongside source images)
datasety mask -i ./dataset -o ./dataset -k "face" --naming suffix

Released under the MIT License.