- Online version: https://spritefusion.com/pixel-snapper
- Desktop version: https://www.spritefusion.com/pixel-snapper#desktop-edition
A tool to snap pixels to a perfect grid. Designed to fix messy and inconsistent pixel art generated by AI.
Current AI image models can't understand grid-based pixel art.
- Pixel are inconsistent in size and position.
- The grid resolution can drift over time.
- Colors are not tied to a strict palette.
With Pixel Snapper:
- ✅ Pixel are snapped to a perfect grid.
- ✅ The grid resolution is consistent and can be scaled to pixel resolution.
- ✅ Colors are tied to a strict, quantized palette.
- AI generated pixel art that needs to be snapped to a grid.
- Procedural 2D art that doesn't fit a grid like tilemaps or isometric maps.
- 2D game assets and 3D textures that need to be perfectly scalable.
Pixel Snapper preserves as much details as possible like dithering.
A standalone build of Pixel Snapper coming with these features:
- Fast batch processing
- 100% offline desktop app
- One-time purchase, yours forever!
- Free lifetime updates
- Works on Mac, Linux, and Windows
Download the desktop application
Requires Rust installed on your machine.
git clone https://github.com/Hugo-Dz/spritefusion-pixel-snapper.git
cd spritefusion-pixel-snappercargo run input.png output.pngThe command accepts an optional k-colors argument:
cargo run input.png output.png 16Use a directory as the input path to process a batch.
cargo run sprites/batch_inputs sprites/batch_outputs 16You can also override the auto-detected pixel size with --pixel-size:
cargo run input.png output.png --pixel-size 8
cargo run sprites/batch_inputs sprites/batch_outputs 16 --pixel-size 8This is useful when the auto-detection doesn't match the expected grid size. The value must be between 1 and half the smallest image dimension.
git clone https://github.com/Hugo-Dz/spritefusion-pixel-snapper.git
cd spritefusion-pixel-snapperBuild the WASM module:
wasm-pack build --target web --out-dir pkg --releaseThen use the WASM module in your project:
import init, { process_image } from "./pkg/spritefusion_pixel_snapper.js";
await init();
// process_image(inputBytes, kColors?, pixelSizeOverride?)
const outputBytes = process_image(inputBytes, 16);Pass null for any optional argument you want to leave on its default behavior.
Pixel Snapper is a Sprite Fusion project. Sprite Fusion is a free, web-based tilemap editor for game developers supporting a wide range of engines including Unity, Godot, Defold, and GB Studio.
MIT License Hugo Duprez