Mosaic Creator
The Mosaic Creator node does all your censoring in one place
- image
- mask
- image
- processing_mask
The name is doing the work here. Mosaic Creator takes any image and pixelates, blurs, or tiles it in one of eight patterns, either over the whole frame or just where you tell it to. The obvious use case - the reason mosaic shapes like squares, circles, and hexagons are even in here - is the pixelation censor you see in Japanese anime and game media. But it's just as useful for privacy redaction on screenshots, cheap stylized pixel-art effects, or adding a deliberate texture to a background you don't want to actually show.
It's from the same "AI Lab" org (1038lab) that published ComfyUI-NodeAlign, and it shows the same profile: small, focused, one-shot utility code. No model downloads, no API keys, nothing to configure before you plug it in. Just an image in, an image out.
How it works
Pure classical computer vision, no neural network anywhere. The node runs on CPU via OpenCV and NumPy and just manipulates the tensor you feed it. Each pattern is a different trick:
- pixelation downsizes the image then scales it back up with nearest-neighbor sampling - the classic chunky blocks.
- blur applies a big Gaussian blur, sized off
block_size. - block_average fills overlapping blocks with their average color using soft, feathered edges - the smoothest of the "mosaic-y" options.
- squares is the same idea but with hard block boundaries.
- circles and hexagons fill geometric shapes with the block average, which is what gives that authentic censor-tile look.
- gradient_horizontal and gradient_vertical blend between two block averages across each cell, which reads more like stylized texture than censorship.
Because it's all numpy/OpenCV, a whole batch runs in a blink. There's no accelerator involved.
The inputs that matter
- mosaic_type - the eight-way dropdown above.
pixelationandsquaresare the ones you'll actually use; the gradients are a novelty you'll try once. - block_size (2–100, default 20) - chunk size. Bigger means bolder, blockier results; for subtle pixelation on faces, drop it to 8–12.
- intensity (0.0–1.0, default 1.0) - at 1.0 you get the full effect. Below that it blends the processed image back with the original, which is how you get a "barely censored" look rather than a hard blur.
- mask - the one that makes this node worth keeping. Feed it a MASK and the effect only lands inside the white regions; everything else passes through untouched. This is how you mosaic one face in a crowd or one text block in a screenshot.
- preserve_edges - a trap. It's declared in the node's inputs and in the function signature, but grep the shipped source and it's never actually used. Flipping it changes nothing in v1.0.0. Don't let it confuse you.
Outputs
Two of them. image is the processed result - that's the one you wire into your Save or whatever comes next. processing_mask is a straight passthrough of your input mask (or an all-white mask if you didn't give one). Handy if you want to composite the effect back later, but don't expect it to have done any thinking.
Install
Same story as every node in this pack. Easiest route is ComfyUI Manager - search ComfyUI-Mosaic and install. Or, by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/1038lab/ComfyUI-Mosaic.git
cd ComfyUI-Mosaic
pip install -r requirements.txt
Then restart ComfyUI. The requirements are torch, torchvision, opencv-python, pillow, and numpy - and if you're running ComfyUI at all, you almost certainly already have every one of them. There are no models to download. This is about as painless as a custom node install gets.
Common issues
- Nothing visibly happens. The node wraps its work in a bare
try/exceptand, on any exception, returns your original image with an all-zero mask instead of erroring. So if the effect never appears, don't assume it worked - check the ComfyUI console for a stack trace. It's swallowing errors that could be telling you something. - Mask mismatch. The mask needs to match the image resolution; if it doesn't, you get one of those silent failures above. Resize or crop to match before plugging it in.
- It's a dead project. The repo is a single "Add files via upload" commit from July 2025. It works, but there's no active development to fix edge cases. That's fine for a utility like this - just don't expect updates.
Worth repeating: this pack's real superpower is the mask workflow - point Mosaic Detector (its sibling node) at an image to find the censored regions, and feed its mask straight into this node to re-apply a clean, uniform mosaic. That combo is the whole reason the pack exists.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| mosaic_type | COMBO | 8 options: pixelation, blur, block_average, squares, circles, hexagons, +2 | |
| block_size | INT | 202–100 | — |
| intensity | FLOAT | 1.00–1 | — |
| maskopt | MASK | — | |
| preserve_edgesopt | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| processing_mask | MASK | — |