I can't explain it, but it's like uncanny valley pixel art. Like the artist hasn't done the final polish pass maybe?
Maybe it's the inconsistent lights/shadows?
Maybe a pixel artist has the proper words to explain the issues
Could you explain a bit how the code works? For example, how does it detect the correct pixel size and how does it find out how to color the (potentially misaligned) pixels?
That's an actually nice setup. Have you looked at Z-Image and the Pixel LoRA that was released? I've found it works fairly well at keeping the pixels matched with the grid.
Is it possible that some of the reason pixels are messed up is because of the watermarking? https://deepmind.google/models/synthid/
Or is it purely because the models just don't understand pixel art?
Another annoyance of Nano Banana (and its Pro version) is that it cannot generate transparent pixels. When it wants to, it creates a hallucinated checkerboard background that makes it worse.
Nice. There's a couple of these (unfake which uses pixel snapping/palette reduction, sd-palettize which uses k-means to palette reduce, etc.) that I've used in the past in a Stable Diffusion -> Pixel Art pipeline.
I think it'd be worth calling out the differences.
[1] - https://github.com/jenissimo/unfake.js
[2] - https://github.com/Astropulse/sd-palettize