downscale_pixel_art
Downscale big art or AI art to a target pixel size without mush, like Smart Downscale on voidless.dev/tools. Each output pixel is one clean colour for its cell: k-centroid (default) runs k-means with k=2-3 on the cell's pixels in OKLab and takes the biggest cluster's centre, so outlines and fills don't blend; dominant takes the cell's most common colour (only colours the input has); nearest takes the centre pixel. Mostly transparent cells become transparent. Target by width (and optionally height) or by factor; optional colour limit after. For AI pixel art drawn on a hidden grid, where the size should be detected rather than chosen, the Pixel Art Fixer on voidless.dev/tools finds the grid. Images up to 2048x2048, 256 frames, 32 MB of input per call. Free: no credits.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"image": "<image>"
},
"name": "downscale_pixel_art"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | k-centroid: clusters per cell, 2 (fill and edge) or 3 for busy cells | |
| mode | No | k-centroid | |
| save | No | Also save the result to your Voidless library (free, private) and return its asset id and cdn.voidless.dev URL, for passing to the next tool without base64 | |
| image | Yes | An image: an https URL (e.g. a cdn.voidless.dev link from get_asset or a saved result), a library image key (assets/…png, as get_asset lists it), a data: URI, or base64 PNG/GIF. | |
| scale | No | Also return a copy scaled up this much (nearest neighbour) to look at | |
| width | No | Output width in px (height follows the aspect unless given) | |
| colors | No | Limit the result to this many colours (OKLab k-means) | |
| factor | No | Or shrink by this factor (default 4 when no width/height) | |
| height | No | ||
| alpha_threshold | No | Share of a cell that must be opaque for its pixel to be opaque |