Cook up game-ready sprites with AI. 🎮👾
Directional clips · sprite sheets · sprite pairs (diffuse + normal map) for real dynamic lighting.
CookSprite is AI-generation-first, not a hand-drawing pixel editor. 🎨 Generate, preview, pixel-perfect, and regenerate individual frames — then round-trip to editors like Aseprite via standard PNG sprite sheets when you want to hand-tune. 🖌️
🧠 Model + Inference ──[ /infer HTTP API ]──► atomic op · local OR docker
⚙️ Workflow ──[ typed tool graph ]──► one minimal task
🖥️ Frontend ──[ triggers workflows ]──► Web toolbox (you) + CLI/skill (agents)
Four ABI-decoupled layers. 🔌 Swap a model, add a workflow, or replace the UI without touching the rest. ComfyUI is supported as an export target (workflow → ComfyUI API JSON), not a dependency.
- 🎯 Task — what you want (e.g. "a single sprite pair"). A DAG of workflow-nodes; each node runs one workflow from a list of candidates.
- 🛣️ Workflow — a flat tool graph that takes typed inputs and returns one typed artifact. Reusable across tasks; you never wire nodes by hand.
- 🔧 Tool — the smallest unit, with typed I/O.
kind="inference"calls a model;kind="deterministic"runs locally (pixelize, crop, pack…).
pip install -e .
# See what CookSprite can do
cspr list
# Cook a sprite (diffuse + normal pair) 🍳
cspr run single_sprite --prompt "a small copper robot" --out ./out
# Export any workflow to ComfyUI API JSON 🔁
cspr export single_sprite --out workflow.jsonPrefer the web toolbox? 🖥️ cd web && npm install && npm run dev — includes a three.js draggable-light preview so you can see your normal maps light up in real time. 💡
v1 vertical slice — green. ✅ Single-prompt → single-sprite pipeline runs end-to-end GPU-free (deterministic stub adapter), with a production vLLM-Omni inference path wired for real model weights. See docs/ for the full design.
PRs welcome! New workflows are just declarative YAML; new Tools/Ops are small typed Python functions. Start with docs/03_WORKFLOW.md.
Apache-2.0. Cook freely. 🧑🍳