MaskPreview_YC
Actually look at your mask — a preview node that doesn't fake it with black boxes
- mask
Masks are the most lied-to type in ComfyUI. A mask is a grayscale tensor, and half the "preview" nodes in the ecosystem just render it as black - you can't tell a useful region from an empty one. MaskPreview_YC is a real preview: it expands the single-channel mask to three channels and saves it through the standard save path, so you get an actual grayscale image in your temp directory and a thumbnail you can inspect.
"Temp directory" is the important detail. It inherits from ComfyUI's SaveImage but writes to the temp folder with a random prefix, so you're not polluting your main output directory with debug frames. You wire it at the end of a mask branch, run once, and look at the result - then delete the node when you're done. It's a debugging tool with no other job, and it knows it.
How it works
The mask gets reshaped to (batch, 1, H, W), expanded to 3 channels, clamped to 0–1, and handed to SaveImage's machinery. That means batches work: a batch of masks produces a batch of preview images, each frame rendered as grayscale. Values in the 0–1 range map directly to black→white, so you see exactly what a conditioning node would see, not a binarized approximation.
The one input
mask (MASK). That's all it takes. There are no outputs - it's an output node (OUTPUT_NODE = True), which is why it doesn't need to return anything. In ComfyUI terms it terminates the branch the way a Save Image node does.
Install
From ComfyUI-YCNodes. ComfyUI Manager → search "ComfyUI-YCNodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/yichengup/ComfyUI-YCNodes
Restart ComfyUI. Standard deps, no models. Look for "MaskPreview_YC" under "YCNode/Mask".
Gotchas
Because it writes to the temp directory, the files get cleaned up by ComfyUI's own temp hygiene - they're for immediate inspection, not archival. If you want a permanent record of a mask, save it with a proper Save Image or save-mask node instead. And the grayscale rendering is literal: a 50%-opacity feather renders as mid-gray, which is correct and occasionally confusing if you expected hard black/white. That's the truth about your mask, which is the point.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| mask | MASK | — |
Outputs (0)
No outputs