Overview
Quantizes to a palette while applying a dither pattern that represents intermediate tones with few colors. It is essential for reducing gradients to a 2–16-color texture that reads as retro pixel art.
Usage tips
- Choose the method by look: orderly checkerboard retro texture →
Ordered4x4; natural photographic grain →FloydSteinberg; hand-drawn dots, crosshatching, or wood grain →PatternImage. Ordered and Pattern Image often feel more deliberately placed. - In
PatternImage, connect a small grayscale image tothreshold_map. It tiles across the output: bright pattern pixels advance to the next palette color, while dark pixels hold the previous color. Start with a 4–16 px Pixel Canvas and strength 0.3–0.7. - Use
NearestColorfor general full-color reduction. UsePaletteOrderwhen the slots deliberately run shadow → midtone → base → highlight. It mixes only adjacent slots, preventing color distance from jumping over a designed shading stage. - Palette Order requires a connected palette with at least two colors. For
ramp_source, start with OKLCH lightness for shading, RGB-R or luminance for a 0–1 control image, and Alpha for an opacity ramp. - Connecting a palette is the standard setup. Connect the project palette to keep
the asset within the overall color system. When unconnected, colors are extracted
automatically from the image, with the count controlled by
max_colors. strengthcontrols the visibility of the pattern in both modes. 1 is standard; 0.3–0.7 gives a subtle pattern, 2 creates a strongly gritty texture, and 0 performs palette quantization without adding ordered offsets or diffusing quantization error.include_transparentaffects automatic palette extraction only.process_transparent_pixelsseparately controls whether hidden RGB in fully transparent pixels is quantized. Both should normally stay OFF.- Gradient →
ditherwith a 2–4-color palette quickly creates retro skies, glows, and water.
Common pitfalls
- No pattern appears: dithering has no effect when the input has no intermediate tones and already matches the palette exactly. Use it on continuous-tone gradients or noise.
- No pattern appears after Gradient Map(Steps): Steps already discarded the
fractional position between palette slots. Feed the continuous source directly to
Dither and select
PaletteOrderwhen those intermediate tones should become dots. - Pattern Image still looks like 4×4 ordered dots:
threshold_mapis unconnected. The node safely falls back to Ordered 4×4 and shows a warning until a pattern arrives. - Palette Order behaves like closest color: connect an intentionally ordered palette containing at least two colors. Auto-extracted colors have no user-defined slot order, so the node warns and falls back to closest color.
- Colors look muddy or unexpected colors appear: automatic extraction with
Representativecreates average representative colors. Connect a palette or useextract_mode = Exactwhen only specified colors are allowed. - Transparent areas look wrong:
preserve_alpha(ON by default) retains source transparency. Enableinclude_transparentonly to include transparent colors in an extracted palette, and enableprocess_transparent_pixelsonly when their hidden RGB should also be modified.
Notes
誤差拡散tends to preserve local contrast;順序 4x4is regular and easy to control.- Pattern Image reads RGB luminance and ignores pattern alpha. Use
invertupstream when the spatial pattern should be reversed. - Palette Order preserves the adjacent-slot restriction in Ordered 4×4, Pattern Image, and error-diffusion modes.
- When a palette input is connected, that palette is used as-is.
_countis the number of palette colors actually used.
Examples
- Reduce to the color count produced by
Palette Extract. - Create a retro screen pattern with a two-color black-and-white palette.
- Produce a more visibly patterned quantization than
Palette Quantize. - Draw an 8×8 wood hatch in Pixel Canvas, then combine
PatternImage + PaletteOrderso only neighboring colors in the wood ramp alternate.
Related nodes
palette_quantize— simple quantization without dithering for flat resultspalette_extract— extract the quantization palette from an imagegradient_generate/noise_generate— create continuous tones that show dithering wellposterize— reduce tonal steps by count rather than by palettegradient_map— create flat palette bands; feed continuous values directly here for palette-order dithering