Nodes/RyanOnTheInside/Flex Image Pixelate βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

Flex Image Pixelate βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Mosaic blocks that can pulse with a reactive signal

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Flex Image Pixelate βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • images
  • opt_feature
  • IMAGE
β—„strength1.00β–Ί
β—„feature_threshold0.00β–Ί
β—„feature_paramβ–Ύβ–Ί
β—„feature_moderelativeβ–Ί
β—„pixel_size10β–Ί

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) - drives pixel_size reactively 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.

CategoryRyanOnTheInside/FlexFeatures/Targets/Images

Inputs (7)

NameTypeDefaultDescription
strengthFLOAT1.000–1Overall strength of the effect (0.0 to 1.0) Higher values create more dramatic changes, while lower values are more subtle.
feature_thresholdFLOAT0.000–1Minimum 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_paramCOMBOChoose which parameter to modulate: - pixel_size: Dynamically adjust pixelation size - None: No parameter modulation
feature_modeCOMBOrelativeHow to apply the feature modulation: - relative: Changes are centered around the original value - absolute: Changes scale directly from zero to the maximum
imagesIMAGEInput image sequence to be processed (IMAGE type)
pixel_sizeINT101–100Size of each pixelated block. Larger values create more pronounced pixelation (1 to 100)
opt_featureoptFEATUREOptional 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)

NameTypeDescription
IMAGEIMAGEβ€”