Nodes/comfyui-timesaver/TS Studio Input (Mask)
ComfyUI Node

TS Studio Input (Mask)

Where the studio's painted mask lands in the graph

By AlexYez·Created 2 years ago·Updated about 22 hours ago· 12
TS Studio Input (Mask)
    • mask
    value
    param_namemask
    label

    When you paint a mask in TS Image Studio's UI - the brush over the part of the image you want regenerated - the app has to get that mask into the underlying graph somehow. TS Studio Input (Mask) is the marker that does it: a placeholder node whose value the studio overwrites at run time with the painted mask it saved as a PNG (white = regenerate). Like all the studio markers, it's part of the backend template rather than something you configure as an end user - but knowing what it does is what makes a studio backend workflow readable.

    How it works

    Two required widgets, same pattern as the other markers:

    • param_name (default mask) - the identifier the studio uses to find this marker and set its value. Must be unique per workflow; this is the name you'll see in the studio's parameter list.
    • value - the annotated upload name of the mask PNG (e.g. sub/mask.png [input]), which the studio writes at run time after you paint and it saves the file.

    The optional label gives the marker a human-readable name in the studio UI instead of showing the raw param_name.

    The single output is mask - a ComfyUI MASK, which is exactly what an inpainting sampler, a noise-mask conditioning node, or any mask-consuming node downstream wants. White pixels are the repaint region; that convention comes from the studio's own mask canvas, and it's the standard "white = regenerate" that mask-based inpainting in the KB uses throughout.

    The mental model is the same as every studio marker: it's a slot in the template. Loaded as a plain ComfyUI workflow (without the studio), the marker just uses whatever value is sitting in the field - so a backend file is still runnable by hand.

    Install and use

    No extra dependencies - it ships with comfyui-timesaver.

    cd ComfyUI/custom_nodes
    git clone https://github.com/AlexYez/comfyui-timesaver
    cd comfyui-timesaver
    python -m pip install -r requirements.txt
    

    As a backend builder, you wire the mask output into whatever consumes the mask (e.g. a Studio inpaint crop node or an inpainting sampler), give the marker a unique param_name, and let the studio fill the value. As a user who just opened a workflow and found this node: that's normal - it's the studio's wiring, not something to fix.

    Common issues

    • "The repaint isn't happening where I painted." The studio saves the mask with white = regenerate; if a downstream node interprets masks the other way around, the region is inverted. Check the mask output's preview before it reaches the sampler.
    • "My mask is blank." The studio hasn't set the value for this run, or the param_name doesn't match what the studio's manifest expects. Duplicate names are the classic cause - each marker must be unique.
    • "I need the mask as an image, not a MASK." The output is the native MASK type; convert it with a mask-to-image node if a consumer needs IMAGE instead.

    The honest scope: this marker does one thing - hand the studio's painted mask to the graph - and it does it invisibly. That invisibility is the point: the studio's whole design is that you never see these values being shuffled.

    CategoryTS/Studio

    Inputs (3)

    NameTypeDefaultDescription
    valueSTRINGAnnotated upload name of the mask PNG the studio sets at run time.
    param_nameSTRINGmaskName the studio uses to find this marker and set its value (e.g. 'prompt', 'width', 'source_image'). Must be unique per workflow.
    labeloptSTRINGOptional human-readable label shown in the studio UI instead of param_name.

    Outputs (1)

    NameTypeDescription
    maskMASK