ArtPipeline
LiveShared pixel-art generation — a chat command or a coding agent in, a reviewed, game-ready sprite out.
Pixel-art asset generation for my games, shared with a collaborator. A Discord slash command queues a request on an always-on VPS, so it survives my desktop being off; when the PC comes online its worker renders the queue locally on the GPU — no hosted generation service. Each sprite comes back to the channel with Keep / Discard / Another buttons, and only the ones we keep are committed to a shared asset repo.
The interesting half isn’t the model. Local diffusion produces pixel-art-styled images, not true pixel art, so the post-processing is load-bearing: reconstruct the real pixel grid, remove the background (following gradients and peeling off frames the model draws unasked), and snap every colour to a fixed per-game palette in CIELAB, because an RGB match swaps hues on dark shades. Because the pipeline chose the render size, it knows the grid’s cell size and passes it to the reconstruction step instead of letting it search: 9.4 seconds down to 0.75, and exact rather than inferred. And each game renders every category at the same render-pixels-per-sprite-pixel, so a 64px chair and a 256px building are drawn at the same level of detail.
The Claude Code agents building my games use it too, through a skill rather than by driving the model directly. A small command-line tool gives them the same pipeline the Discord queue uses: create a game’s style if it doesn’t exist yet (categories, sprite sizes, palette), draft a batch of candidates to a scratch folder, look at each one, and keep the good ones. Keeping commits the sprite, with the prompt and seed that reproduce it, into the same shared repo, under a lock that the Discord worker and other agents also take. The JezzBall agent set up its own game this way and made its ball and tile art. Its feedback shaped the tool: pale subjects came out hollow because a “plain” background is white and leaked through gaps in the outline (a solid dark green background fixed that, from 3 hollow in 6 to none), and tile categories now skip background removal and come with a tiled preview for checking the seams.
It runs end to end today: a few seconds from claim to sprite, with results that survive Discord outages, bot restarts and the worker dying mid-job.
Letting the game agents use it for real and seeing where it falls short. Character animation is the likely next pressure — keeping a character consistent across jump and attack frames — and a per-game LoRA trained on the sprites we've kept would lock each look in rather than steering it by prompt alone.