Skip to content
AI Sprite Maker

Palette Swapper

Recolour a sprite colour by colour, or map it onto a retro palette, and get exact pixel-perfect output.

  • Free
  • Runs locally
  • No sign-up
Drop a sprite or sheet
Add more files in the same drop to recolour them all with the same mapping (team colours, enemy variants, a whole animation set).
Choose file
Runs in your browser · nothing is uploaded

Everything runs in your browser. Your files are never uploaded, so it also works offline once the page has loaded.

Palette swaps are how games have always made enemy variants, team colours and alternate costumes from one set of frames. Image editors make it fiddly: replace-colour tools use tolerance and miss shades. Here each distinct colour in the sprite is listed with its pixel count, and every swap is exact: a colour becomes exactly the new colour everywhere, and nothing else changes.

How to use the Palette Swapper

  1. Drop a sprite or a sheet. Drop several files together to recolour a whole set with the same mapping.
  2. The sprite's colours are listed dark to light with pixel counts. Images with more than 64 colours are first reduced to a palette you choose.
  3. Select a colour in the list, or click it in the Before image. Its pixels are outlined so you can see where it is used.
  4. Pick its new colour with the colour picker or from a preset palette, or press Map every colour to snap the whole sprite onto the preset.
  5. Use the hue, saturation and lightness sliders to shift the whole result, which is the fastest way to make a variant.
  6. Download the PNG, a ZIP of the batch, the new palette as .hex, or the swap map as JSON.

What you get

  • Recoloured PNG, same size, same alpha, only the swapped colours changed.
  • Batch ZIP with the same mapping applied to every file you dropped.
  • Palette .hex of the new colours and a swap map JSON (from → to) you can use for a runtime palette-swap shader.

Which engines it fits

  • Ship pre-swapped sheets for each variant, or use the swap map JSON to build a lookup texture for a palette-swap shader in Godot, Unity or GameMaker.
  • Recoloured sprites keep the same dimensions and frame layout, so existing animation data still matches.

Tips from making games with it

  • Swap ramps, not single colours: change a dark, mid and light shade together so the shading still reads.
  • Keep the outline colour unchanged across variants. It holds the silhouette together.
  • For a quick enemy variant, try a hue shift of 90–180° before hand-picking colours.
  • Mapping to a preset palette is a quick way to make art from different sources look like one game.

Use cases

  • Enemy and NPC variants: red slime, blue slime, gold slime from one sheet.
  • Team colours and player skins in multiplayer games.
  • Converting existing art to a console palette like NES or Game Boy.
  • Seasonal and night versions of tiles and props.

FAQ

Does it change pixels I did not swap?
No. Swaps are exact colour replacements. A pixel changes only if its colour is one you remapped, so anti-aliasing, alpha and every other colour stay as they were.
My image has hundreds of colours. Can I still use it?
Yes. Images with more than 64 colours are reduced first with an OKLab palette of the size you choose, then you swap the reduced colours. For best results, start from real pixel art.
Can I apply the same swap to a whole animation?
Yes. Drop all the sheets or frames together. The first file is the one you edit, and the mapping is applied to all of them in the ZIP export.
Which preset palettes are there?
PICO-8, Game Boy, NES, Endesga 32, Sweetie 16, DawnBringer 16 and 32, CGA, 1-bit and grayscale.
Is anything uploaded?
No. Recolouring runs entirely in your browser.
Can I generate new colour variants automatically?
The hue, saturation and lightness sliders shift every colour at once in OKLCh, which keeps the perceived brightness of each shade, so shading survives the shift.
All free tools →