KNOWN LIMITATIONS
& WORKAROUNDS
Retrogaze is honest about what it can and can't do. This page covers the real limitations of AI-generated pixel art and what you can do about them.
TILE GENERATION
EDGE TILES LOOK LIKE THE CENTER
Tilesets maintain excellent palette and texture consistency across all tiles. But edge and corner tiles may look very similar to the center. They don't always show transitions to other terrain types (e.g., grass-to-dirt).
Use the center tile as a repeating fill, or manually add edge transitions in Aseprite or GIMP. The generated tiles work great as a base texture.
TERRAIN MAY GENERATE AS OBJECTS
Tiles like "grass ground" or "water surface" sometimes produce scattered objects (grass tufts, water splashes) on a transparent background instead of a solid surface. The AI interprets "grass" as individual grass objects rather than a continuous ground texture.
Works well: brick, stone, dungeon, wood. Anything the AI
understands as a solid wall or floor.
Hit or miss: grass, water, foliage, cloud patterns.
Use palette lock to force specific colors and regenerate until you get a solid fill. Or load the tile into Aseprite/GIMP, fill transparent areas with a base color, and use the generated detail as a texture layer.
CHARACTERS & ANIMATION
DIRECTIONAL VIEWS
Directional sprites (front, right, back, left) are generated per-view using the front as a reference. Character identity and palette are well-preserved. Proportions may vary slightly (~3–5px) between views.
Regenerate with a different seed if a specific view looks off. The front view is always the strongest.
ANIMATIONS ARE A STARTING POINT
All animation types (walk, attack, death, cast, idle, jump) produce multiple frames with zero palette drift and identical character identity across all frames — but motion is constrained to what’s possible at classic sprite sizes.
Attack and cast quality varies by character — overhead weapons and characters with clear staves/orbs work best. Walk and death are consistent across all subjects.
Use Retrogaze output as your base, then import the spritesheet into a pixel art editor like Aseprite or LibreSprite to clean up individual frames, adjust timing, or add detail. This matches how most gamedev workflows handle generated assets.
EQUIPMENT MAY NOT APPEAR
The AI is non-deterministic. A knight may generate without a sword; a fighter may be missing a shield. Prompt emphasis on equipment helps but doesn't guarantee it appears.
Use num_candidates (1–4) to generate multiple candidates and pick the one where equipment rendered correctly.
ITEMS MAY INCLUDE CHARACTERS
Simple iconic items (potions, chests, coins) are reliable. Complex items (elaborate weapons, multi-component objects) may occasionally include a partial figure or hand holding the item.
Generate multiple candidates. If the prompt keeps producing figures, simplify the description to focus on the item's silhouette.
COLOR & FIDELITY
PALETTE REMAPPING IS PERCEPTUAL
Colors are remapped to the nearest valid console palette color using perceptual color matching. Final colors are always valid console colors but may not be the ones you'd hand-pick.
Use palette lock to specify exact colors from the console's palette before generating.
SEED REPRODUCIBILITY IS ~99%
Same seed + prompt produces near-identical output. Minor pixel-level differences may occasionally appear. For pixel-perfect reproduction, keep the generated files rather than regenerating.
For pixel-perfect reproduction, download and keep the generated files. Don't rely on regeneration being identical.
QUALITY VARIES BY SUBJECT
Simple, iconic subjects (knight, skeleton, treasure chest, potion) produce the best results because they have clear classic console precedents. Abstract, complex, or modern subjects may produce less authentic results.
Stick to subjects that could plausibly appear in a classic console game. Use num_candidates to generate multiple options and pick the best.
GETTING THE BEST RESULTS
Use palette lock. Locking 3–4 specific colors from the console's palette before generating dramatically improves consistency and gives you control over the mood.
Generate candidates. Use num_candidates (1–4) to get multiple options in one request. This is the most effective way to work around AI non-determinism.
Keep descriptions simple. "Skeleton warrior with sword" beats "an undead skeletal warrior wielding a glowing enchanted broadsword with magical runes." Classic hardware didn't have room for complexity.
Match the era. Retro (1978–83) gives you sparse, iconic sprites. Late (1987+) gives you richer detail. Pick the era that matches the game you're building.
Treat output as a draft. Retrogaze gets you 80% of the way there. The last 20% is where a real pixel artist turns a draft into something that ships. If your game is serious, hire an artist for the final pass.