npx skills add ...
npx skills add jwynia/agent-skills --skill godot-asset-generator
Generate game assets using AI image generation APIs (DALL-E, Replicate, fal.ai) and prepare them for Godot. Covers the full art pipeline from concept art and style guides to final sprites, sprite sheets, and import configuration. This skill should be used when creating game art, generating sprites, making tilesets, creating UI elements, or preparing assets for Godot import. Keywords: game assets, AI art, DALL-E, Replicate, fal.ai, sprite sheet, tileset, Godot, pixel art, character sprite, game art, texture, animation frames.
npx skills add jwynia/agent-skills --skill 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.
Use this skill when:
Do NOT use this skill when:
Required:
OPENAI_API_KEY for DALL-E 3REPLICATE_API_TOKEN for Replicate (SDXL, Flux)FAL_KEY for fal.aiOptional:
Define your art style before generating assets:
Generate assets using the appropriate provider:
generate-image.ts for individual imagesbatch-generate.ts for multiple related assetsPrepare raw AI output for game use:
Prepare assets for Godot import:
.import with optimal settings| 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 |
Best for high-quality, consistent results. Excellent prompt following.
Best for style control and cheaper batch generation.
Best for rapid iteration and testing prompts.
Key modifiers: 16-bit, 8-bit, pixel art, retro, clean pixels, no anti-aliasing
Avoid: realistic, detailed, smooth, gradient
Key modifiers: hand-drawn, illustration, ink lines, sketch, watercolor
Key modifiers: digital painting, concept art, painterly, brush strokes
Key modifiers: flat design, vector, clean edges, solid colors, minimal
Generate a single image from any supported provider.
Generate multiple images from a specification file.
Batch Spec Format:
Post-process generated images for game use.
Pack multiple sprites into a sprite sheet.
Output Metadata:
Generate Godot .import files with optimal settings.
Solution: Export the API key before running:
Problem: Generated images have different styles despite same prompt.
Solutions:
Problem: --remove-bg doesn't cleanly separate sprite.
Solutions:
--color-key with a specific background colorProblem: Generated pixel art has smoothed edges.
Solutions:
--filter nearest in process-sprite.tsProblem: API returns 429 rate limit errors.
Solutions:
--delay in batch-generate.ts--concurrencyreferences/prompting/pixel-art.md - Detailed pixel art techniquesreferences/prompting/hand-drawn.md - Illustrated style guidereferences/prompting/consistent-characters.md - Character consistencyreferences/api-guides/openai-dalle.md - DALL-E 3 API referencereferences/api-guides/replicate-sdxl.md - Replicate integrationreferences/api-guides/fal-ai.md - fal.ai guidereferences/godot-integration/import-settings.md - Import configurationreferences/godot-integration/animation-setup.md - AnimatedSprite2D setupassets/prompts/pixel-art-templates.json - Pixel art prompt templatesassets/prompts/character-templates.json - Character promptsassets/style-guides/style-guide-template.json - Style guide schemadeno run --allow-env --allow-net --allow-read --allow-write scripts/batch-generate.ts \
--spec ./batch-spec.json \
--output ./generated/deno run --allow-read --allow-write scripts/pack-spritesheet.ts \
--input ./generated/*.png \
--output ./sprites/player-sheet.png \
--columns 4{
"style": "pixel-art",
"resolution": 64,
"palette": "limited-16-colors",
"modifiers": "16-bit, no anti-aliasing, clean pixels"
}deno run --allow-read --allow-write scripts/process-sprite.ts \
--input ./raw/knight.png \
--output ./processed/knight.png \
--remove-bg \
--resize 64x64 \
--filter nearest--provider dalle --model dall-e-3--provider replicate --model stability-ai/sdxl--provider fal --model fal-ai/flux/schnell"pixel art [subject], 16-bit style, clean pixels, no anti-aliasing,
limited color palette, retro game sprite, transparent background""hand-drawn illustration of [subject], ink lines, watercolor texture,
sketch style, game art, white background""digital painting of [subject], concept art style, painterly brush strokes,
dramatic lighting, game asset""flat design [subject], vector art style, clean edges, solid colors,
minimal shading, game icon, transparent background"deno run --allow-env --allow-net --allow-write scripts/generate-image.ts [options]
Options:
--provider <name> Provider: dalle, replicate, fal (required)
--prompt <text> Generation prompt (required)
--output <path> Output file path (required)
--model <name> Specific model (optional, provider-dependent)
--size <WxH> Image size, e.g., 1024x1024 (default: 1024x1024)
--style <name> Style preset: pixel-art, hand-drawn, painterly, vector
--negative <text> Negative prompt (Replicate/fal only)
--quality <level> Quality: standard, hd (DALL-E only)
--json Output metadata as JSON
-h, --help Show helpdeno run --allow-env --allow-net --allow-read --allow-write scripts/batch-generate.ts [options]
Options:
--spec <path> Path to batch specification JSON (required)
--output <dir> Output directory (required)
--concurrency <n> Parallel requests (default: 2)
--delay <ms> Delay between requests (default: 1000)
--resume Resume from last successful
--json Output results as JSON
-h, --help Show help{
"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" }
]
}deno run --allow-read --allow-write scripts/process-sprite.ts [options]
Options:
--input <path> Input image path (required)
--output <path> Output image path (required)
--remove-bg Remove background (make transparent)
--resize <WxH> Resize to dimensions
--filter <type> Resize filter: nearest, linear (default: nearest)
--trim Trim transparent whitespace
--padding <n> Add padding pixels
--color-key <hex> Color to make transparent (e.g., ff00ff)
-h, --help Show helpdeno run --allow-read --allow-write scripts/pack-spritesheet.ts [options]
Options:
--input <pattern> Input files (glob pattern, required)
--output <path> Output sprite sheet path (required)
--columns <n> Number of columns (default: auto)
--padding <n> Padding between sprites (default: 0)
--power-of-two Force power-of-two dimensions
--metadata <path> Output JSON metadata path
-h, --help Show help{
"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 }
]
}deno run --allow-read --allow-write scripts/generate-import-files.ts [options]
Options:
--input <path> Input image or directory (required)
--preset <name> Preset: pixel-art, hd-sprite, ui (default: pixel-art)
--frames <n> Animation frame count (for sprite sheets)
--columns <n> Sprite sheet columns
--fps <n> Animation FPS (default: 12)
-h, --help Show helpFilter Mode: Nearest
Compression: Lossless
Mipmaps: Off
Fix Alpha Border: OnFilter Mode: Linear
Compression: VRAM Compressed
Mipmaps: OnFilter Mode: Linear (or Nearest for pixel UI)
Compression: Lossless
Mipmaps: Off# 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# 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# 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/Error: OPENAI_API_KEY environment variable is not setexport OPENAI_API_KEY="sk-..."