Nodes/ComfyUI_Pixel_Snapper/Video Game Palette
ComfyUI Node

Video Game Palette

Video Game Palette

By HexaDucket·Created 2 months ago·Updated 2 months ago· 6
Video Game Palette
    • palette
    palette_nameGame Boy (DMG Green)

    Want your snapshot to look like it shipped on a 1989 Game Boy? The Video Game Palette node is a one-click nostalgia machine. It hands you a dropdown of 21 classic hardware palettes - Game Boy green, NES, PICO-8, Commodore 64, ZX Spectrum, DawnBringer, and more - and turns your pixels into exactly those colors. It's the fastest route from "decent pixel art" to "this could be a screenshot of an old console," and it's dead simple to use.

    Read this before you connect it, though: it does nothing on its own. The node is a source - a palette provider. Its only output is a palette of a custom GAME_PALETTE type, and that output exists to be plugged into the Pixel Snapper (Engine) node's palette input. If you run it dangling in the graph, you'll get exactly nothing, because no image ever touches it. This is a common first-run surprise with this pack, so wire it up the way the README's example workflow does: Load Image → Pixel Snapper → palette comes from Video Game Palette.

    How it works. Behind the scenes it's just a curated list of RGB tuples - you can see every hex value in the pack's palettes.py, so nothing is a mystery. When you connect it to the engine, two things happen. The engine's color count becomes the palette's size (NES Full 54 has 54 colors; PICO-8 has 16), and after snapping, the image is remapped so every pixel is one of the exact palette colors. If you want, flip on palette_dither on the Pixel Snapper node for Floyd–Steinberg dithering during that remap - it softens banding on smooth gradients, at the cost of that characteristic dither speckle.

    The one input. palette_name, a dropdown with 21 choices, defaulting to "Game Boy (DMG Green)". Highlights worth knowing:

    • Game Boy (DMG Green) / Pocket / Ice Cream / Kirokaze / Rustic / Mist GB - six different takes on the four-shade green Game Boy look.
    • NES (Full 54) - the full hardware palette, great when you want authentic 8-bit color.
    • PICO-8 - the indie-sensation 16-color set; if you've seen modern "PICO-8 aesthetic" art, this is it.
    • DawnBringer 16 / 32, Endesga 32, Sweetie 16, Resurrect 64 - community-designed palettes tuned for readability, the ones pixel artists actually use.

    The full list also includes CGA, EGA 16, Commodore 64, ZX Spectrum, SLSO8, Oil 6, and the 1-bit and 2-bit monitor palettes, so there's a flavor for every era.

    Installing it. It lives in the ComfyUI_Pixel_Snapper pack. Install via ComfyUI Manager (search "ComfyUI_Pixel_Snapper") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/HexaDucket/ComfyUI_Pixel_Snapper
    

    Restart ComfyUI after, and hard-refresh the browser (Ctrl+F5) so the pack's preview widget loads. There are no extra Python dependencies - just torch, numpy, and Pillow.

    The gotchas. Because a connected palette takes over the color count, your colors_k value on the engine gets ignored - that's not a bug, it's the palette size doing the work, and it's worth knowing so you stop twiddling the wrong knob. And if you're on Linux or macOS, remember the snapping engine itself is a Windows .exe, so the palette is only as useful as the engine it feeds; this node is just color data and will run anywhere.

    Twenty-one palettes, one dropdown, zero guesswork. It's the friendliest node in the pack, and the one most likely to make you smile when you hit Game Boy green.

    Categoryimage/pixel_art

    Inputs (1)

    NameTypeDefaultDescription
    palette_nameCOMBOGame Boy (DMG Green)21 options: Game Boy (DMG Green), Game Boy Pocket (Gray), NES (Full 54), PICO-8, CGA (Palette 1 High), CGA / EGA 16, +15

    Outputs (1)

    NameTypeDescription
    paletteGAME_PALETTE