SpriteForge

Coherent 2D sprite sets, because you have a game to ship.

Ask an image model for "a coin" twelve times and you get twelve coins from twelve different universes. SpriteForge exists so that does not happen. You lock in one style, and every sprite after that is forged to match it: same palette, same linework, same vibe, then auto-cropped to clean transparent PNGs ready to drag into Unity.

Command Line GPL-3.0 Python 3.11+
Source on GitHub
Approach

Consistency by construction, not by vibes.

Locks a style once
You mint a single master reference image, then every asset is generated against it. Style drift stops being something you fight sprite by sprite.
Cuts backgrounds for you
Everything is generated on a hideous magenta backdrop that gets keyed out to clean alpha. You never see the magenta. If you do, that is a bug.
Normalizes like a control freak
Trim, anchor, and multi-size downscale, so every character lands on the same canvas and every item sits where it should.
Strips metadata
Output PNGs are IHDR, IDAT, IEND and nothing else. No EXIF, no C2PA, no generator tag. Verified on write and again on the way out.
Refuses to pay twice
Content-addressed cache. Re-running with nothing changed costs exactly zero. Change one prompt and you pay for one sprite.
Readable by agents
Built so a coding agent can drive the whole pipeline and actually look at what it made. Add --json to basically anything if a robot is reading the output.
Workflow

The ritual.

# 1. pick a vibe, or go bespoke with the blank template
sprite init --style flat-vector

# 2. describe your look, then forge candidate masters
sprite style --candidates 4
sprite style --accept 2

# 3. list what you want, then build
sprite build
sprite build --quality high

# 4. ship only the clean stuff into your game
sprite handoff ../Assets/Art

Presets ship for flat vector, pixel art, and hand-drawn. The pixel-art preset uses nearest-neighbour downscales so crisp edges stay crisp, since Lanczos turns pixel art into mush.

Your Data

Your API key is yours.

SpriteForge talks to OpenAI, so it needs your key. That key lives in a gitignored .env and is never printed, logged, committed, or written into your game repository. Locke Werks operates no service in this path and receives nothing.

The only things that ever cross into your game are finished sprites and a manifest. If you are dropping SpriteForge into a game as a subdirectory, add it to that game's .gitignore, because your API key is not a fun surprise for your collaborators.

The tool is copyleft. The art you generate is between you and OpenAI's usage terms.

Get It

Install.

Python 3.11+ and an OpenAI key that has cleared Organization Verification, which gpt-image-2 requires. Install with pip from the repository, then sprite smoke makes one API call to prove everything is wired up.

Source and setup