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.
IHDR, IDAT, IEND and
nothing else. No EXIF, no C2PA, no generator tag. Verified on write and again
on the way out.
--json to basically anything if a robot is reading
the output.
# 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.
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.
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.