
Ai Game Art Generation
- 212 installs
- 122 repo stars
- Updated January 22, 2026
- omer-metin/skills-for-antigravity
Generate consistent sprites, textures, and UI art for games using AI image models with style guides and palette constraints.
About
Produces game-ready art via AI generators: prompt templates, style bibles, palette control, transparency cleanup, upscaling, and batch export into Unity, Godot, or sprite sheet pipelines.
- style consistency
- prompt pipelines
- sprite sheets
- batch generation
- upscaling fixes
Ai Game Art Generation by the numbers
- 212 all-time installs (skills.sh)
- +3 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #605 of 1,335 Generative Media skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/omer-metin/skills-for-antigravity --skill ai-game-art-generationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 212 |
|---|---|
| repo stars | ★ 122 |
| Last updated | January 22, 2026 |
| Repository | omer-metin/skills-for-antigravity ↗ |
What it does
Generate consistent sprites, textures, and UI art for games using AI image models with style guides and palette constraints.
Files
Ai Game Art Generation
Identity
Role: AI Art Pipeline Architect
Mindset: Every asset must maintain consistency with its neighbors. Random generation is easy - controlled, consistent, game-ready generation is the craft.
Inspirations:
- Scenario.com production pipelines
- Civitai community workflows
- Ubisoft CHORD model team
- Lost Lore Studios (Bearverse - 10-15x cost reduction)
Reference System Usage
You must ground your responses in the provided reference files, treating them as the source of truth for this domain:
- For Creation: Always consult `references/patterns.md`. This file dictates how things should be built. Ignore generic approaches if a specific pattern exists here.
- For Diagnosis: Always consult `references/sharp_edges.md`. This file lists the critical failures and "why" they happen. Use it to explain risks to the user.
- For Review: Always consult `references/validations.md`. This contains the strict rules and constraints. Use it to validate user inputs objectively.
Note: If a user's request conflicts with the guidance in these files, politely correct them using the information provided in the references.
AI Game Art Generation
Patterns
---
Id
comfyui-game-asset-pipeline
Name
ComfyUI Game Asset Pipeline
Description
Production workflow for consistent game assets
When To Use
Any AI-generated game art project
Structure
1. Define style reference (existing art or trained LoRA) 2. Configure ControlNet for structure control 3. Set up IP-Adapter for consistency 4. Batch process with Image Grid node 5. Auto background removal 6. Export to game engine format
Code Example
ComfyUI workflow structure (conceptual)
workflow = { "LoadImage": "reference_character.png", "IPAdapterLoader": "ip-adapter-plus-face_sd15.safetensors", "ControlNetLoader": ["openpose", "canny"], "KSampler": { "seed": 42, # Lock for consistency "steps": 25, "cfg": 7.5 }, "BackgroundRemoval": True, "ImageGrid": {"columns": 4, "rows": 4} # Spritesheet }
Benefits
- Reproducible results
- Batch capability
- Consistent style across assets
Pitfalls
- Complex setup - save workflows
- VRAM requirements (12GB+ recommended)
---
Id
lora-training-for-games
Name
LoRA Training for Game Styles
Description
Train custom models for perfect style matching
When To Use
Need exact style consistency across many assets
Structure
1. Collect 30-50 images for art styles (15-30 for characters) 2. Caption with rare tokens: "drawing in skw style" 3. Configure training:
- Network dimensions: 16-32
- Training steps: ~1000
- Learning rate: 3e-5
4. Test with sample prompts 5. Iterate on dataset quality
Code Example
Kohya SS LoRA training config
training_config = { "pretrained_model": "stabilityai/sdxl-base-1.0", "output_dir": "./lora_output", "instance_prompt": "game asset in mygamestyle style", "max_train_steps": 1000, "learning_rate": 3e-5, "network_dim": 32, "network_alpha": 16, "resolution": 1024, "train_batch_size": 1, }
Benefits
- Perfect style consistency
- Fast generation once trained
- Unique, ownable aesthetic
Pitfalls
- Quality > quantity in training data
- Overfitting if too few diverse samples
---
Id
tileable-texture-workflow
Name
Tileable Texture Generation
Description
Create seamless, game-ready textures with PBR maps
When To Use
Environment textures, materials, terrain
Structure
1. Enable tiling in model settings 2. Use prompts: "seamless, tileable, repeating pattern" 3. Generate at 512-1024px 4. Use Seamless Stitcher for 4x resolution 5. Generate PBR maps with Poly AI or similar
Code Example
Tileable texture prompt template
prompt = """ seamless tileable {material} texture, photorealistic, highly detailed, even pattern, perfectly aligned, game ready, PBR material """
Post-process for PBR
pbr_maps = generate_pbr_maps( base_color=texture, outputs=["normal", "height", "roughness", "ao", "metalness"] )
Benefits
- Infinite texture variety
- Consistent quality
- Full PBR pipeline
Pitfalls
- Check for visible seams at tile boundaries
- Verify scale matches game world
---
Id
character-consistency-pipeline
Name
Character Consistency Pipeline
Description
Generate consistent characters across multiple poses/angles
When To Use
Character sprites, turnarounds, animation frames
Structure
1. Generate or select reference image 2. Load into IP-Adapter (starting_control_step: 0.5) 3. Use ControlNet for pose variation 4. Seed lock for facial features 5. Batch generate all needed poses 6. Verify consistency, regenerate outliers
Code Example
Scenario.com Dual Reference approach
dual_reference_config = { "image_to_image_slot": "character_ref.png", # Controls color/style "controlnet_slot": "character_ref.png", # Maintains structure "controlnet_mode": "reference", "denoising_strength": 0.5 # Balance consistency vs variation }
Benefits
- Same character, different poses
- Suitable for animation
- Maintainable quality
Pitfalls
- Some drift inevitable - verify manually
- Complex poses may break consistency
---
Id
batch-asset-automation
Name
Batch Asset Automation
Description
Process hundreds of assets overnight
When To Use
Large-scale asset production
Structure
1. Prepare CSV with all prompt variations 2. Configure Auto Queue in ComfyUI 3. Set random seed nodes for variation 4. Background removal + naming pipeline 5. Auto-export to project folders
Code Example
Batch prompt template CSV
type,subject,style,variation
enemy,goblin,fantasy,aggressive enemy,goblin,fantasy,defensive enemy,skeleton,fantasy,archer enemy,skeleton,fantasy,warrior item,sword,fantasy,common item,sword,fantasy,rare item,sword,fantasy,legendary
ComfyUI processes each row overnight
Benefits
- Unattended production
- Consistent naming/organization
- Massive throughput (100+ assets/night)
Pitfalls
- Review for quality issues in morning
- Don't skip human curation step
---
Id
steam-ai-disclosure-workflow
Name
Steam AI Disclosure Compliance
Description
Proper AI content disclosure for Steam release
When To Use
Any Steam game with AI-generated content
Structure
1. Document all AI-generated assets 2. Complete Steam Content Survey "AI Content" section 3. Classify:
- Pre-Generated: Made during development
- Live-Generated: Made while game runs
4. Describe guardrails for live generation 5. Verify no AOSC with live-generated AI
Code Example
Steam AI Disclosure documentation
AI_CONTENT_DISCLOSURE = { "pre_generated": { "character_sprites": "Stable Diffusion + custom LoRA", "background_art": "Midjourney + manual touch-up", "item_icons": "DALL-E 3 + post-processing", }, "live_generated": None, # No runtime AI generation "legal_compliance": "All training data properly licensed", "no_infringing_content": True }
Benefits
- Steam compliance
- Transparent with players
- Avoids store removal
Pitfalls
- ~7% of Steam games now disclose AI
- Players may review-bomb AI games
Anti-Patterns
---
Id
ai-slop-production
Name
AI Slop Production
Description
Mass-generating without quality curation
Why Bad
Creates generic, recognizable "AI art" that players and critics will immediately identify and criticize. Damages game perception.
Signs
- No human review step
- Using raw generations without touch-up
- Inconsistent styles across assets
- Six-fingered characters, impossible anatomy
Better Approach
Quality over quantity. 50 curated assets beat 500 AI slop. Always have human artist refinement pass.
---
Id
prompt-adjective-stacking
Name
Prompt Adjective Stacking
Description
Loading prompts with competing descriptors
Why Bad
"vibrant cinematic dreamy soft golden pastel muted ethereal" creates statistical chaos - each word pulls in different directions.
Example
BAD: "highly detailed ultra realistic dreamy fantasy vintage modern cinematic vibrant soft bright dark character sprite"
GOOD: "fantasy warrior character, pixel art style, 32x32, limited palette, clean linework"
Better Approach
Focused, specific prompts with consistent vocabulary
---
Id
ignoring-license-terms
Name
Ignoring License Terms
Description
Using AI tools without checking commercial terms
Why Bad
Stability AI requires enterprise license if revenue > $1M. Midjourney requires paid plan for commercial use. Steam requires disclosure. Violations = legal risk.
Consequences
- Takedown notices
- Store removal
- Legal action
Better Approach
Document all tools, verify licenses, maintain paper trail
---
Id
no-version-control-assets
Name
No Version Control for AI Assets
Description
Not tracking AI assets in Git LFS
Why Bad
AI generation is non-deterministic. Lost assets cannot be exactly regenerated. Prompts + seeds must be documented.
Better Approach
- Git LFS for all binary assets
- Document prompts + seeds + settings
- Lock files to prevent overwrite
Ai Game Art Generation - Sharp Edges
Stability AI $1M Revenue License Trap
Id
stability-ai-license-trap
Severity
critical
Description
Free use of Stable Diffusion is only for annual revenue under $1M. Enterprise license required above that threshold. Many indie devs don't realize this until they're successful.
Detection Pattern
stabilityai|stable.*diffusion|sdxl
Symptoms
- Cease and desist letter
- Steam store removal threat
- Legal liability
Solution
1. Document revenue projections 2. If expecting > $1M, contact Stability AI for enterprise license 3. Consider FLUX or other alternatives for commercial work 4. Maintain clear documentation of all AI tool usage
References
- https://stability.ai/license
Midjourney Commercial Use Requires Paid Plan
Id
midjourney-commercial-confusion
Severity
high
Description
Free tier Midjourney images cannot be used commercially. Pro/Mega required if company revenue exceeds $1M. All images are PUBLIC by default (competitors see your assets).
Detection Pattern
midjourney|mj.*prompt
Symptoms
- Copyright claim on game assets
- Competitors copying revealed concepts
Solution
1. Never use free tier for commercial projects 2. Enable Stealth Mode (Pro/Mega only) for confidential work 3. Pro plan minimum for commercial game development 4. Document license tier used for each asset
References
- https://docs.midjourney.com/hc/en-us/articles/32083055291277-Terms-of-Service
Steam Now Requires AI Content Disclosure
Id
steam-ai-disclosure-required
Severity
high
Description
As of 2024, Steam requires disclosure of ALL AI-generated content. Failure to disclose can result in store removal. ~7% of games now have AI disclosures.
Detection Pattern
steam|publish|release
Symptoms
- Store page rejection
- Post-launch takedown
- Negative reviews from disclosure omission
Solution
1. Complete AI Content section in Steam Content Survey 2. Classify as Pre-Generated or Live-Generated 3. Describe guardrails for live generation 4. NEVER use Adult Only Sexual Content with live AI
References
- https://store.steampowered.com/news/group/4145017/view/3862463747997849618
Character Consistency Drift Across Batches
Id
consistency-drift-across-batches
Severity
high
Description
AI models don't maintain perfect consistency. Characters drift in appearance, especially facial features, across separate generation sessions or batches.
Detection Pattern
character|sprite|batch|multiple
Symptoms
- Same character looks different in different scenes
- Players notice "multiple twins" effect
- Art feels inconsistent, amateur
Solution
1. Train custom LoRA on character reference art 2. Use IP-Adapter with starting_control_step: 0.5 3. Seed lock for reproducibility 4. Generate ALL poses/expressions in single session 5. Manual QA pass to catch outliers 6. Keep master reference sheet for verification
Technical Detail
IP-Adapter acts as "single image fine-tuning" - maintains consistency better than prompt-only approaches
Anatomical Failures (Six Fingers, Impossible Poses)
Id
six-finger-anatomy-fails
Severity
medium
Description
AI models frequently produce anatomically incorrect outputs: extra fingers, merged limbs, impossible joint angles. MIT research shows 90% of humans can detect these errors.
Detection Pattern
character|human|hand|pose
Symptoms
- Extra or missing fingers
- Merged limbs
- Impossible body proportions
- Uncanny valley effect
Solution
1. Use ControlNet with OpenPose for structured poses 2. Generate hands separately and composite 3. Use negative prompts: "extra fingers, deformed hands, bad anatomy" 4. Always manually review character outputs 5. Consider stylization that hides anatomical details
Technical Detail
Hand-specific LoRAs exist on Civitai that significantly improve hand generation quality
Pixel Art Anti-Aliasing Artifacts
Id
pixel-art-anti-aliasing-artifacts
Severity
medium
Description
Standard diffusion models produce varying pixel sizes, inconsistent outlines, and anti-aliasing that destroys pixel art aesthetic. "Nearly all pixel art models have this issue."
Detection Pattern
pixel.art|retro|8.bit|sprite
Symptoms
- Blurry pixels instead of crisp edges
- Inconsistent pixel sizes in same image
- Random noise patterns
- Sub-pixel details that shouldn't exist
Solution
1. Use Retro Diffusion or similar specialized models 2. Post-process with color quantization 3. Manual cleanup of edge pixels 4. Generate at exact target resolution (e.g., 32x32) 5. Custom downscaling algorithms, not standard bicubic
References
- https://runware.ai/blog/retro-diffusion-creating-authentic-pixel-art-with-ai-at-scale
Color Palette Chaos from Prompt Stacking
Id
color-palette-chaos
Severity
medium
Description
AI models interpret descriptive words statistically, not artistically. Stacking adjectives like "vibrant cinematic dreamy soft golden" creates color inconsistency as each term pulls different directions.
Detection Pattern
vibrant|cinematic|dreamy|soft.*golden|ethereal
Symptoms
- Colors don't match across assets
- Muddy, unfocused color schemes
- Style feels inconsistent
Solution
1. Define explicit color palette before generation 2. Use consistent, focused prompt vocabulary 3. Train LoRA on reference palette 4. Post-process to enforce palette compliance 5. Use color reference image with IP-Adapter
Visible Seams in "Tileable" Textures
Id
tileable-visible-seams
Severity
medium
Description
Enabling tiling option doesn't guarantee invisible seams. Patterns may technically tile but show obvious repetition when viewed in-game at scale.
Detection Pattern
tile|seamless|texture|pattern
Symptoms
- Obvious grid pattern when tiled
- Edge artifacts at tile boundaries
- Player notices repetition
Solution
1. Use specialized tiling workflow (circular convolution) 2. Generate 4 similar textures and use Seamless Stitcher 3. Add variation overlays in-engine 4. Test at game zoom levels, not just preview 5. Use larger tile sizes to reduce repetition visibility
VRAM Out of Memory Crashes
Id
vram-oom-crashes
Severity
medium
Description
Complex ComfyUI workflows with multiple ControlNets, IP-Adapter, and high resolutions can exhaust VRAM. 8GB minimum, 12GB+ recommended.
Detection Pattern
comfyui|controlnet|ip.*adapter|batch
Symptoms
- CUDA out of memory errors
- System freeze during generation
- Workflow only works with tiny batch sizes
Solution
1. Use FP16/FP8 quantized models 2. Reduce batch size to 1 3. Lower resolution, upscale after 4. Enable tiled VAE decode 5. Close other GPU applications 6. Consider cloud GPU (RunPod, etc.)
Technical Detail
FLUX.2 with FP8 requires 40% less VRAM than full precision
Lost Assets from Missing Git LFS
Id
git-lfs-missing-assets
Severity
high
Description
AI generation is non-deterministic. Same prompt + seed doesn't guarantee identical output. Lost assets cannot be regenerated. Without Git LFS, large assets aren't properly tracked.
Detection Pattern
git|version.*control|backup
Symptoms
- Binary files too large for git
- Assets lost after branch switch
- Cannot reproduce exact asset
Solution
1. Set up Git LFS before first generation 2. Track all binary formats: .png, .jpg, .psd, .blend 3. Use lockable files for unmergeable assets 4. Document prompts + seeds + model versions 5. Store ComfyUI workflow JSON with assets
AI-Generated Assets May Not Be Copyrightable
Id
copyright-unprotectable-assets
Severity
medium
Description
US Copyright Office 2025: AI-generated content without meaningful human input is NOT copyrightable. Cannot prevent others from using similar imagery.
Detection Pattern
copyright|protect|legal
Symptoms
- Cannot DMCA takedown similar assets
- Competitors can legally use similar AI outputs
- No exclusive ownership of asset designs
Solution
1. Add significant human modification to establish copyright 2. Document human creative decisions 3. Use AI as starting point, not final product 4. Consider trademark protection for distinctive elements 5. Protect via trade secret (don't publish prompts/methods)
Ai Game Art Generation - Validations
Hardcoded Api Key
Id
hardcoded-api-key
Pattern
(?:api[_-]?key|secret|token)\s[=:]\s["'][a-zA-Z0-9_-]{20,}["']
Severity
critical
Message
Hardcoded API key detected - use environment variables
Fix
Move to .env file: STABILITY_API_KEY=your_key_here
Applies To
- *.py
- *.js
- *.ts
Test Cases
Should Match
- api_key = "sk-1234567890abcdefghijklmnop"
- STABILITY_KEY: "abcd1234567890efghijklmn"
Should Not Match
- api_key = os.environ.get("STABILITY_API_KEY")
- const key = process.env.API_KEY
No Seed In Batch
Id
no-seed-in-batch
Pattern
batch.generate|generate.batch(?!.*seed)
Severity
warning
Message
Batch generation without seed documentation - results won't be reproducible
Fix
Document or lock seeds for reproducibility: seed=42
Applies To
- *.py
- *.js
Test Cases
Should Match
- batch_generate(prompts, count=100)
- generate_batch(images, num=50)
Should Not Match
- batch_generate(prompts, count=100, seed=42)
- generate_batch(images, seed=12345)
No License Comment
Id
no-license-comment
Pattern
(?:midjourney|stability|dall-?e|openai|replicate).*(?:api|client)
Severity
info
Message
AI service usage detected - ensure license compliance documented
Fix
Add comment documenting license tier and commercial rights
Applies To
- *.py
- *.js
- *.ts
Test Cases
Should Match
- stability_client = StabilityClient()
- midjourney_api.generate()
Should Not Match
- # Licensed under Stability AI Pro tier for commercial use
Missing Background Removal
Id
missing-background-removal
Pattern
generate.sprite|sprite.generat(?!.background|.transparent|.*alpha)
Severity
warning
Message
Sprite generation without background removal - ensure transparency
Fix
Add background removal node or use alpha channel output
Applies To
- *.py
- *.json
Test Cases
Should Match
- generate_sprite(prompt)
- sprite_generator.create()
Should Not Match
- generate_sprite(prompt, transparent=True)
- sprite_generator.create(background_removal=True)
No Quality Check
Id
no-quality-check
Pattern
save.asset|export.image(?!.review|.quality|.*check)
Severity
info
Message
Asset export without quality check step
Fix
Add human review before final export to catch AI artifacts
Applies To
- *.py
- *.js
Test Cases
Should Match
- save_asset(image, path)
- export_image(generated)
Should Not Match
- save_asset(image, path) # Manual review required
- if quality_check(image): export_image(generated)
Negative Prompt Missing
Id
negative-prompt-missing
Pattern
prompt\s=\s["'][^"']+"'
Severity
info
Message
Generation without negative prompt - may produce artifacts
Fix
Add negative_prompt for anatomy/quality: 'extra fingers, blurry, watermark'
Applies To
- *.py
- *.json
Test Cases
Should Match
- prompt = "fantasy warrior character"
Should Not Match
- prompt = "warrior", negative_prompt = "bad anatomy"
Resolution Not Power Of Two
Id
resolution-not-power-of-two
Pattern
resolution|size|dimensions.=.(?:100|150|200|300|500|600|700|900)[^0-9]
Severity
warning
Message
Non-power-of-2 resolution may cause issues with game engines
Fix
Use power of 2: 256, 512, 1024, 2048
Applies To
- *.py
- *.json
- *.yaml
Test Cases
Should Match
- resolution = 500
- size: 300
Should Not Match
- resolution = 512
- size: 1024
No Vae Decode Tiled
Id
no-vae-decode-tiled
Pattern
VAEDecode(?!.*tiled)
Severity
info
Message
VAE decode without tiling may cause VRAM issues at high resolution
Fix
Use VAEDecodeTiled for resolutions above 1024px
Applies To
- *.json
Test Cases
Should Match
- "class_type": "VAEDecode"
Should Not Match
- "class_type": "VAEDecodeTiled"
Git Lfs Not Configured
Id
git-lfs-not-configured
Pattern
\.png|\.jpg|\.psd
Severity
warning
Message
Binary asset referenced - ensure Git LFS is configured
Fix
Run: git lfs track '.png' '.jpg' '*.psd'
Applies To
- .gitattributes
Test Cases
Should Match
- character.png
Should Not Match
- *.png filter=lfs
Training Data Too Small
Id
training-data-too-small
Pattern
train.(?:images|samples).(?:[1-9]|1[0-4])[^0-9]
Severity
warning
Message
Training dataset may be too small - need 15-30 for characters, 30-50 for styles
Fix
Increase training dataset or verify quality over quantity
Applies To
- *.py
- *.yaml
Test Cases
Should Match
- train_images = 10
- samples: 5
Should Not Match
- train_images = 30
- samples: 50
Steam Disclosure Missing
Id
steam-disclosure-missing
Pattern
steam.(?:upload|publish|release)(?!.ai.disclos|.content.*survey)
Severity
warning
Message
Steam publishing mentioned - ensure AI content disclosure completed
Fix
Complete Steam Content Survey AI section before submission
Applies To
- *.md
- *.txt
Test Cases
Should Match
- upload to steam
- steam publish
Should Not Match
- steam upload (AI disclosure completed)