What problem does it solve?
Produces game-ready character sprite art (portraits, idle loops, and animated spritesheets) without skipping verification gates that catch broken output like blank cells, clipping, and misaligned animation frames.
Core Features & Use Cases
- Portrait generation: Create validated, dimension-safe PNG portraits (optionally deployed to road-to-aew).
- Portrait idle loops: Generate subtle 2x2 breathing + blink loops in a single backend call, then anchor and verify.
- Spritesheet generation: Build animated spritesheets with connected-components frame detection, background removal, normalization, and deterministic output assembly (PNG sheet, WebP, GIF, per-frame PNGs, and Phaser atlas JSON).
- Per-row generation for reliability: Use --per-row to generate animation strips state-by-state to reduce cross-row drift and shrink retry scope.
- Verification gates: Run automated pixel/no-magenta/content/anchor checks to prevent shipping broken art.
Quick Start
Generate an animated wrestler idle portrait loop by running the command: python3 skills/game/game-sprite-pipeline/scripts/portrait_pipeline.py --mode portrait-loop --display-name "Bangkok Belle Nisa" --description "kabuki-inspired makeup, Thai national colors woven into showman gear, mid-30s confident expression" --style slay-the-spire-painted.