Godot Asset Generator
Generate game assets using AI image generation APIs and prepare them for use in Godot 4.x. This skill covers the complete art pipeline from concept to Godot-ready sprites.
When to Use This Skill
Use this skill when:
Generating game sprites, characters, or objects using AI Creating tilesets for platformers or top-down games Generating UI elements, icons, or menu assets Batch-generating animation frames Preparing AI-generated assets for Godot import Creating consistent asset sets with style guides
Do NOT use this skill when:
Creating 3D models or textures (2D assets only) Manual pixel art or illustration (use art software) Complex frame-by-frame animation (use animation tools) Working with existing assets (use Godot directly) Prerequisites
Required:
Deno runtime installed At least one API key: OPENAI_API_KEY for DALL-E 3 REPLICATE_API_TOKEN for Replicate (SDXL, Flux) FAL_KEY for fal.ai
Optional:
ImageMagick for advanced image processing Godot 4.x project for import file generation Quick Start Generate a Single Image deno run --allow-env --allow-net --allow-write scripts/generate-image.ts \ --provider dalle \ --prompt "pixel art knight character, front view, 16-bit style, transparent background" \ --output ./assets/knight.png
Batch Generate Animation Frames deno run --allow-env --allow-net --allow-read --allow-write scripts/batch-generate.ts \ --spec ./batch-spec.json \ --output ./generated/
Create Sprite Sheet deno run --allow-read --allow-write scripts/pack-spritesheet.ts \ --input ./generated/*.png \ --output ./sprites/player-sheet.png \ --columns 4
Core Workflow Phase 1: Style Definition
Define your art style before generating assets:
Choose Art Style: Pixel art, hand-drawn, painterly, or vector Create Style Guide: Document colors, modifiers, and constraints Test Prompts: Generate samples to validate style consistency { "style": "pixel-art", "resolution": 64, "palette": "limited-16-colors", "modifiers": "16-bit, no anti-aliasing, clean pixels" }
Phase 2: Asset Generation
Generate assets using the appropriate provider:
Single Assets: Use generate-image.ts for individual images Batch Assets: Use batch-generate.ts for multiple related assets Iterate: Refine prompts based on results Phase 3: Post-Processing
Prepare raw AI output for game use:
Background Removal: Extract sprites from backgrounds Color Correction: Normalize palette if needed Resize: Scale to exact game resolution Trim/Pad: Remove whitespace, add sprite padding deno run --allow-read --allow-write scripts/process-sprite.ts \ --input ./raw/knight.png \ --output ./processed/knight.png \ --remove-bg \ --resize 64x64 \ --filter nearest
Phase 4: Godot Integration
Prepare assets for Godot import:
Pack Sprite Sheets: Combine frames into optimized sheets Generate Import Files: Create .import with optimal settings Configure Animations: Set up SpriteFrames resources API Provider Selection Provider Best For Quality Cost Speed DALL-E 3 Consistency, high detail Excellent $$$ Medium Replicate Style control, variations Very Good $$ Medium fal.ai Fast iteration, testing Good $ Fast DALL-E 3 (OpenAI)
Best for high-quality, consistent results. Excellent prompt following.
--provider dalle --model dall-e-3
Sizes: 1024x1024, 1792x1024, 1024x1792 Quality: standard, hd Style: vivid, natural Replicate (SDXL/Flux)
Best for style control and cheaper batch generation.
--provider replicate --model stability-ai/sdxl
More model options (SDXL, Flux, specialized) Negative prompts supported ControlNet and img2img available fal.ai
Best for rapid iteration and testing prompts.
--provider fal --model fal-ai/flux/schnell
Fastest inference Good for prototyping Lower cost per image Prompting by Art Style Pixel Art "pixel art [subject], 16-bit style, clean pixels, no anti-aliasing, limited color palette, retro game sprite, transparent background"
Key modifiers: 16-bit, 8-bit, pixel art, retro, clean pixels, no anti-aliasing
Avoid: realistic, detailed, smooth, gradient
Hand-Drawn / Illustrated "hand-drawn illustration of [subject], ink lines, watercolor texture, sketch style, game art, white background"
Key modifiers: hand-drawn, illustration, ink lines, sketch, watercolor
Painterly / Concept Art "digital painting of [subject], concept art style, painterly brush strokes, dramatic lighting, game asset"
Key modifiers: digital painting, concept art, painterly, brush strokes
Vector / Flat Design "flat design [subject], vector art style, clean edges, solid colors, minimal shading, game icon, transparent background"
Key modifiers: flat design, vector, clean edges, solid colors, minimal
Script Reference generate-image.ts
Generate a single image from any supported provider.
deno run --allow-env --allow-net --allow-write scripts/generate-image.ts [options]
Options:
--provider
batch-generate.ts
Generate multiple images from a specification file.
deno run --allow-env --allow-net --allow-read --allow-write scripts/batch-generate.ts [options]
Options:
--spec
Batch Spec Format:
{ "provider": "replicate", "model": "stability-ai/sdxl", "style": "pixel-art", "basePrompt": "16-bit pixel art, game sprite, transparent background", "assets": [ { "name": "player-idle", "prompt": "knight standing idle, front view" }, { "name": "player-walk-1", "prompt": "knight walking, frame 1 of 4" }, { "name": "player-walk-2", "prompt": "knight walking, frame 2 of 4" } ] }
process-sprite.ts
Post-process generated images for game use.
deno run --allow-read --allow-write scripts/process-sprite.ts [options]
Options:
--input
pack-spritesheet.ts
Pack multiple sprites into a sprite sheet.
deno run --allow-read --allow-write scripts/pack-spritesheet.ts [options]
Options:
--input
Output Metadata:
{ "image": "player-sheet.png", "size": { "width": 256, "height": 128 }, "frames": [ { "name": "idle", "x": 0, "y": 0, "width": 64, "height": 64 }, { "name": "walk-1", "x": 64, "y": 0, "width": 64, "height": 64 } ] }
generate-import-files.ts
Generate Godot .import files with optimal settings.
deno run --allow-read --allow-write scripts/generate-import-files.ts [options]
Options:
--input
Godot Import Settings Pixel Art Sprites Filter Mode: Nearest Compression: Lossless Mipmaps: Off Fix Alpha Border: On
HD Sprites Filter Mode: Linear Compression: VRAM Compressed Mipmaps: On
UI Elements Filter Mode: Linear (or Nearest for pixel UI) Compression: Lossless Mipmaps: Off
Examples Example 1: Pixel Art Character with Walk Animation
1. Create batch spec
cat > character-batch.json << 'EOF' { "provider": "replicate", "style": "pixel-art", "basePrompt": "16-bit pixel art knight, game sprite, transparent background", "assets": [ { "name": "knight-idle", "prompt": "standing idle, front view" }, { "name": "knight-walk-1", "prompt": "walking, left foot forward" }, { "name": "knight-walk-2", "prompt": "walking, standing straight" }, { "name": "knight-walk-3", "prompt": "walking, right foot forward" }, { "name": "knight-walk-4", "prompt": "walking, standing straight" } ] } EOF
2. Generate images
deno run --allow-env --allow-net --allow-read --allow-write \ scripts/batch-generate.ts --spec character-batch.json --output ./raw/
3. Process sprites
for f in ./raw/knight-*.png; do deno run --allow-read --allow-write scripts/process-sprite.ts \ --input "$f" --output "./processed/$(basename $f)" \ --remove-bg --resize 64x64 --filter nearest done
4. Pack sprite sheet
deno run --allow-read --allow-write scripts/pack-spritesheet.ts \ --input "./processed/knight-*.png" \ --output ./sprites/knight-sheet.png \ --columns 5 --metadata ./sprites/knight-sheet.json
5. Generate Godot import
deno run --allow-read --allow-write scripts/generate-import-files.ts \ --input ./sprites/knight-sheet.png --preset pixel-art \ --frames 5 --columns 5 --fps 8
Example 2: Tileset Generation
Generate individual tiles
deno run --allow-env --allow-net --allow-write scripts/generate-image.ts \ --provider dalle \ --prompt "seamless pixel art grass tile, top-down view, 32x32, game tileset" \ --output ./tiles/grass.png \ --style pixel-art
Process and resize
deno run --allow-read --allow-write scripts/process-sprite.ts \ --input ./tiles/grass.png --output ./tiles/grass-processed.png \ --resize 32x32 --filter nearest
Example 3: UI Icons
Batch generate UI icons
cat > ui-batch.json << 'EOF' { "provider": "fal", "style": "vector", "basePrompt": "flat design game icon, clean edges, solid colors, transparent background", "assets": [ { "name": "icon-sword", "prompt": "sword weapon icon" }, { "name": "icon-shield", "prompt": "shield defense icon" }, { "name": "icon-potion", "prompt": "health potion bottle icon" }, { "name": "icon-coin", "prompt": "gold coin currency icon" } ] } EOF
deno run --allow-env --allow-net --allow-read --allow-write \ scripts/batch-generate.ts --spec ui-batch.json --output ./icons/
Common Issues API Key Not Found Error: OPENAI_API_KEY environment variable is not set
Solution: Export the API key before running:
export OPENAI_API_KEY="sk-..."
Inconsistent Style Across Batch
Problem: Generated images have different styles despite same prompt.
Solutions:
Use more specific style modifiers Use Replicate with seed parameter for reproducibility Generate more images and select best matches Use img2img with reference image (Replicate) Background Removal Fails
Problem: --remove-bg doesn't cleanly separate sprite.
Solutions:
Add "transparent background" or "white background" to prompt Use --color-key with a specific background color Use more explicit prompts: "isolated on transparent background" Manual cleanup may be needed for complex images Pixel Art Has Anti-Aliasing
Problem: Generated pixel art has smoothed edges.
Solutions:
Add "no anti-aliasing", "clean pixels" to prompt Generate at larger size, then downscale with nearest neighbor Use --filter nearest in process-sprite.ts Post-process with palette reduction Rate Limiting
Problem: API returns 429 rate limit errors.
Solutions:
Increase --delay in batch-generate.ts Reduce --concurrency Wait and retry Use different provider for large batches Additional Resources Prompting Guides references/prompting/pixel-art.md - Detailed pixel art techniques references/prompting/hand-drawn.md - Illustrated style guide references/prompting/consistent-characters.md - Character consistency API Guides references/api-guides/openai-dalle.md - DALL-E 3 API reference references/api-guides/replicate-sdxl.md - Replicate integration references/api-guides/fal-ai.md - fal.ai guide Godot Integration references/godot-integration/import-settings.md - Import configuration references/godot-integration/animation-setup.md - AnimatedSprite2D setup Templates assets/prompts/pixel-art-templates.json - Pixel art prompt templates assets/prompts/character-templates.json - Character prompts assets/style-guides/style-guide-template.json - Style guide schema Limitations API-based only: Requires internet and API keys (no local models) Style consistency: AI may produce variations despite same prompt Resolution constraints: Each provider has size limits 2D assets only: Not for 3D models, textures, or complex animations Background removal: May require manual cleanup for complex images Cost: API calls incur charges, especially for large batches