Pixelize (PixelArt-Konverter)
Malerische und KI-generierte Bilder in überzeugendes klassisches Pixel-Art verwandeln — niedrige Auflösung, kuratierte Palette, saubere Flächen.
MutaSprite selbst ist gratis. Pixelize ist ein Einmal-Modul für €12 (oder im €19 Studio-Kit enthalten) — diese Seite erklärt, was es tut. Was du damit erstellst, darfst du kommerziell nutzen — im eigenen Spiel oder in Auftragsarbeit.
Kurzbeschreibung
Pixelize wandelt malerische oder KI-generierte Assets (von Hintergründen bis Figuren) in echtes klassisches Pixel-Art um: niedrige Zielauflösung + kuratierte, begrenzte Palette + saubere flache Flächen, in mehreren Modi. Es ist eine eigenständige Operation neben Chroma-Key, UnDetail und Asset Slice — und ersetzt nicht das block-basierte „Pixelart UnDetail".
Wofür / Wann
- Du hast ein gemaltes oder KI-generiertes Bild und willst daraus ein intentionales Pixel-Art-Sprite oder einen Pixel-Hintergrund machen.
- Du möchtest einen bestimmten Retro-Look (DawnBringer 16, PICO-8, Game Boy) oder ein Konsolen-Farbraster (Mega Drive, SNES).
- Du brauchst eine kohärente, kleine Palette statt einer matschigen Posterisierung.
Wann nicht Pixelize:
- Du willst nur Detail reduzieren / vergröbern ohne kuratierte Palette → Pixelart UnDetail (Block-Mosaik).
- Du willst freistellen → ein Chroma-Key-Profil.
So funktioniert's
Pixelize arbeitet in einer deterministischen Pipeline (gleiche Parameter ⇒ byte-identisches Ergebnis):
- Downscale auf die Zielauflösung (hochwertiges Area-Resampling). Crispness entsteht vor allem aus niedriger Auflösung + begrenzter Palette.
- Palette bestimmen — Auto (median-cut im perzeptuellen Oklab-Raum auf K Farben), eine feste Kunstpalette, oder ein Konsolen-Profil (Auto-Palette, dann Snap auf das Kanalraster der Konsole).
- Mapping jedes Pixels auf die nächste Palettenfarbe, optional mit Dithering.
- Alpha sauber setzen (hart oder beibehalten).
- Ausgabe als kleines Sprite, optional ganzzahlig × N hochskaliert.
Vor dem Downscale kann Auto-Crop das Bild auf die Alpha-Bounding-Box beschneiden, damit eine Figur die volle Zielauflösung nutzt.
Einstellungen
| Regler | Wirkung |
|---|---|
| Modus / Preset | Clean Flat (Default) · Retro (DB16) · Painterly→Pixel · Mega Drive · SNES · Custom. Lädt abgestimmte Parameterbündel. |
| Auflösung | Zielauflösung px (Presets 48/64/96/128/256, Default 128; bis 512 per Opt-in; manuell 8–1024) oder Faktor (2/3/4/6/8). |
| Palette | Auto (K Farben) · feste Palette (DawnBringer 16, PICO-8, Game Boy DMG) · Konsole (Mega Drive 3-bit, SNES 5-bit). |
| Farben (K) | Palettengröße bei Auto/Konsole: Presets 8/16/24/32/48/64, Default 24; bis 512 per Opt-in (langsam). |
| Dithering | Aus (Default) · Bayer 2×2 · Bayer 4×4 · Floyd-Steinberg. |
| Alpha | Hart (Default, Schwelle 128) oder Alpha beibehalten. |
| Auto-Crop | Vor dem Downscale auf den Alpha-Inhalt beschneiden (Default an). |
| Upscale / Ausgabe | Ganzzahliger Upscale ×1/2/4/8; Ausgabe Kleinbild / Hochskaliert / Beides. |
Empfohlene Einstellungen je Anwendungsfall:
| Ziel | Empfehlung |
|---|---|
| Saubere flache Pixel-Figur | Clean Flat (px 128, Auto K=24, kein Dither) |
| Retro-Look mit Charakter | Retro (DB16) oder Painterly→Pixel (leichtes Dither) |
| Authentischer Konsolen-Look | Mega Drive (3-bit) bzw. SNES (5-bit) |
| Sehr feine Gesichtsdetails | px 128 statt 64 (64 ist oft zu grob für Gesichter) |
CLI / Automatisierung
Headless dasselbe Pixeln — Aufruf und Positional-Argumente in der CLI-Übersicht. Diese
Operation wählst du mit --operation pixelize.
Relevante Flags (entsprechen den Reglern oben): --pixelize-palette {auto,db16,pico8,gameboy,md,snes},
--pixelize-res-mode {px,factor} mit --pixelize-target-px bzw. --pixelize-factor,
--pixelize-colors K, --pixelize-dither {off,bayer2,bayer4,floyd}, --pixelize-alpha {hard,preserve}
mit --pixelize-alpha-threshold 1–255, --pixelize-autocrop / --no-pixelize-autocrop sowie
Upscale/Ausgabe über --pixelize-upscale N und --pixelize-output {small,upscaled,both}.
Beispiel:
clean_sprite_chromakey.py paint.png paint_px.png --operation pixelize --pixelize-palette auto --pixelize-target-px 128 --pixelize-colors 24
FAQ
Was ist der Unterschied zu „Pixelart UnDetail"? UnDetail ist ein Block-Mosaik + Per-Kanal-Posterize — es hat keine kohärente Palette und keine Zielauflösung. Pixelize liefert intentionales Pixel-Art mit kuratierter, begrenzter Palette und echtem niedrigaufgelöstem Raster. Beide bleiben als getrennte Werkzeuge erhalten.
Warum bekomme ich bei gleichen Einstellungen immer dasselbe Ergebnis? Pixelize ist deterministisch — die Auto-Palette nutzt median-cut (kein k-means), damit die Regressionstests byte-exakt bleiben.
Warum sind 512 px / 512 Farben mit einer Warnung markiert? Beide sind Opt-in, weil sehr große Auflösung × Palette deutlich langsamer ist. Das Mapping ist speicherschonend (gechunkt), sodass große Kombinationen nicht den Speicher sprengen — sie brauchen nur länger.
Was ist mit einer dunklen Outline um das Sprite? Eine selektive Pixelize-Outline ist bewusst auf eine spätere Version (v1.1) verschoben und in dieser Version nicht enthalten.
Grenzen
- Keine Outline (dunkle Kontur entlang der Form) in v1 — auf v1.1 verschoben.
- Keine eigenen ladbaren Paletten (.pal/.hex) und kein Schatten-Hue-Shift in dieser Version.
- Keine Frame-übergreifende Palette für Animations-Sheets.
- 64 px ist für feine Gesichtsdetails oft zu grob — 128 px ist der robustere Default.
Beispiele
![]()
Reduktion auf Zielauflösung + begrenzte Palette — aus gerenderter/KI-Art wird klassische Pixel-Art.
Verwandte Features
- Pixelart UnDetail — das block-basierte Vergröbern (ohne kuratierte Palette), die abgegrenzte Schwester-Operation.