Flex Image Pixelate β‘π ‘π π £π
Mosaic blocks that can pulse with a reactive signal
- images
- opt_feature
- IMAGE
The single-parameter simplicity here makes it a good first Flex node to understand: it's a mosaic/pixelation filter, one setting, and it can be driven by a reactive Feature to make block size pulse over a clip instead of sitting at one fixed level of chunkiness the whole way through.
How it works
pixel_size (1β100, default 10) is the only real dial: it's the size, in pixels, of each averaged block. At 1 the image is untouched (each "block" is a single pixel); as it climbs, the image gets sampled down into progressively larger flat-colored squares - the classic "censored face" or retro-8-bit look, depending how far you push it.
feature_param only has two options here, pixel_size or None - same as a few of the other single-purpose Flex nodes, there's just nothing else to modulate. feature_mode (relative/absolute), feature_threshold, and strength behave as they do everywhere else in the pack. A reactive use worth trying: driving pixel_size from an audio feature so the image "resolves" into detail on quiet passages and dissolves into blocky mosaic on loud ones (or the reverse), rather than pixelating uniformly throughout.
Inputs and outputs that matter
images- required.pixel_size- the whole effect. Small values (2β8) read as a light stylization; large values (30+) become abstract, geometric.opt_feature(optional) - drivespixel_sizereactively if connected.
Output is a single IMAGE.
How to install it
Via ComfyUI Manager, search "RyanOnTheInside." Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
cd ComfyUI_RyanOnTheInside
pip install -r requirements.txt
then restart. No model, no heavy dependency - this is a straightforward downsample/upsample operation.
Common issues & troubleshooting
Blocks look uneven or misaligned at odd image resolutions. Pixelation is grid-based, so an image dimension that isn't cleanly divisible by pixel_size will produce a partial block along one or two edges. Usually not noticeable, but if you're seeing a thin strip that looks different from the rest of the mosaic, that's why.
Reactive pixel_size looks choppy rather than smooth. pixel_size has to move in effectively whole-pixel steps to look right (fractional block sizes don't mean much visually), so a feature with fine-grained continuous variation can produce visibly stepped transitions rather than a perfectly smooth ramp. That's inherent to the effect, not a bug - if it bothers you, smoothing the upstream feature helps more than adjusting anything on this node.
Faces/subjects still recognizable at high pixel_size. Pixelation alone isn't a reliable anonymization technique - enough context (hair, outline, clothing, motion across frames) can still make a subject identifiable even at fairly aggressive block sizes. If you're using this for actual privacy/redaction rather than a stylistic look, don't rely on this node alone.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| strength | FLOAT | 1.000β1 | Overall strength of the effect (0.0 to 1.0) Higher values create more dramatic changes, while lower values are more subtle. |
| feature_threshold | FLOAT | 0.000β1 | Minimum feature value to trigger the effect (0.0 to 1.0) Only applies the effect when the feature value exceeds this threshold. Lower values make the effect more sensitive, higher values make it more selective. |
| feature_param | COMBO | Choose which parameter to modulate: - pixel_size: Dynamically adjust pixelation size - None: No parameter modulation | |
| feature_mode | COMBO | relative | How to apply the feature modulation: - relative: Changes are centered around the original value - absolute: Changes scale directly from zero to the maximum |
| images | IMAGE | Input image sequence to be processed (IMAGE type) | |
| pixel_size | INT | 101β100 | Size of each pixelated block. Larger values create more pronounced pixelation (1 to 100) |
| opt_featureopt | FEATURE | Optional feature input for modulation Connect any feature node here to control the effect. Features can come from audio, motion, color, or other sources. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |