LiveMutaSprite ist live. Jetzt auf Gumroad und itch.io — ab sofort kaufen und laden.
Handbuch/ Transform-Operationen/ Pixelize (PixelArt-Konverter)

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):

  1. Downscale auf die Zielauflösung (hochwertiges Area-Resampling). Crispness entsteht vor allem aus niedriger Auflösung + begrenzter Palette.
  2. Palette bestimmenAuto (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).
  3. Mapping jedes Pixels auf die nächste Palettenfarbe, optional mit Dithering.
  4. Alpha sauber setzen (hart oder beibehalten).
  5. 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

Pixelize: links detaillierte KI-Art, rechts auf grobe Pixel + 16-Farben-Palette reduziert.

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.