Nodes/ComfyUI Essentials/πŸ”§ Transition Mask
ComfyUI Node Runs on cloud

πŸ”§ Transition Mask

Procedural wipe transitions as a mask batch

By cubiqΒ·Created 3 years agoΒ·Updated about a year agoΒ· 1,152
πŸ”§ Transition Mask
    • MASK
    β—„width512β–Ί
    β—„height512β–Ί
    β—„frames16β–Ί
    β—„start_frame0β–Ί
    β—„end_frame9999β–Ί
    β—„transition_typeβ–Ύβ–Ί
    β—„timing_functionβ–Ύβ–Ί

    If you've ever built a slideshow in PowerPoint or edited video, you know the transition menu - wipe left, iris in, bar reveal, cross-fade. Transition Mask generates exactly that, but as a batch of ComfyUI masks instead of a rendered video effect: a sequence of frames going from black to white (or the reverse) following one of nine wipe shapes, which you then use to blend, composite, or drive anything else in your graph over time.

    Why you'd reach for it

    The obvious use is stitching two video clips or two generations together with something nicer than a hard cut - feed this mask into a compositing chain alongside your two source clips, and wherever the mask is white you show one, wherever it's black you show the other, with the wipe pattern controlling how that boundary moves frame by frame. It's just as useful outside video editing, though: an animated mask is a general-purpose tool for regional prompting that changes over time, or for revealing/concealing part of a generation across a batch.

    How it works

    You set the canvas size and how many frames the transition should span, pick a transition_type (the shape of the wipe) and a timing_function (the pacing curve), and the node procedurally renders the whole mask batch.

    The inputs and outputs that matter

    • width / height (INT, default 512 each) - the mask canvas size; match your actual video or image dimensions.
    • frames (INT, default 16) - how many mask frames to generate.
    • start_frame / end_frame (INT, defaults 0 / 9999) - lets you window the transition inside a longer sequence: hold static black (or white) padding before the wipe starts and after it finishes, instead of having the transition run across the entire batch. Leave these at their defaults if you want the transition to occupy the whole clip.
    • transition_type - the wipe shape: horizontal slide, vertical slide, horizontal bar, vertical bar, center box, horizontal door, vertical door, circle, or fade.
    • timing_function - the easing curve: linear, in (starts slow), out (ends slow), or in-out (eases both ends). in-out is usually the one that reads as the most natural-looking wipe.

    Output is a single MASK - the whole animated batch, ready to wire into a compositing node, an ImageBlend-style operation across frames, or wherever else your workflow consumes an evolving mask.

    How to install it

    Via ComfyUI Manager: search "ComfyUI Essentials," install, restart. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/cubiq/ComfyUI_essentials
    

    No model downloads - this is pure procedural mask generation, so it's about as lightweight as nodes get.

    Common issues

    Mask dimensions or frame count don't match your video batch. This is the most common trip-up: width/height/frames here need to line up with whatever image or latent batch you're compositing against, or the blend will either error or silently misalign. Double-check these three numbers against your actual clip before wiring things together.

    Transition happens too fast or in the wrong spot. If your wipe looks instant or is happening in the wrong part of a longer sequence, check start_frame/end_frame - leaving end_frame at its default (9999) is fine if your clip is shorter than that, but if you've windowed the transition and it's not appearing where expected, that's almost always where to look first.

    Pick timing_function deliberately, not by habit. linear is the safe default but reads a little mechanical; try in-out if a wipe feels stiff - it's a one-value change and costs nothing to test.

    Categoryessentials/mask

    Inputs (7)

    NameTypeDefaultDescription
    widthINT5121–16384β€”
    heightINT5121–16384β€”
    framesINT161–9999β€”
    start_frameINT0β€”
    end_frameINT9999β€”
    transition_typeCOMBO9 options: horizontal slide, vertical slide, horizontal bar, vertical bar, center box, horizontal door, +3
    timing_functionCOMBO4 options: linear, in, out, in-out

    Outputs (1)

    NameTypeDescription
    MASKMASKβ€”