agentsclimarketplace

Godot asset gen

Skill cnqdztp/godot-skills/skills/godot-asset-gen

Generate 2D game assets: PNG images through Google, OpenAI, Meshy, or WaveSpeed; Meshy text-to-image/image-to-image and three-view 3D references; MP4 video for animated sprite sheets; background removal, grid slicing, loop detection, and budget-based planning. Wan 2.7 is the content-permissive route. Meshy outputs can feed godot-asset-gen-3d by task ID. Requires the selected provider key plus local imagemagick/rembg/ffmpeg dependencies.From its SKILL.md

Install
npx -y skills add cnqdztp/godot-skills --skill godot-asset-gen

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

8.5 KB, as published. Nobody here has run it

2D Asset Generator

Generate PNG images and sprite animations. 3D (GLB / rigging / animation via Tripo3D or Meshy) lives in godot-asset-gen-3d.

Image models

Model (--model)VendorSizesCost (est. ¢)Best for
gemini-3.1-flash-lite-imageGoogle512/1K/2K/4K2/3/5/8cheap drafts, textures, kits
gemini-3.1-flash-image defaultGoogle512/1K/2K/4K5/7/10/15precise prompt following — refs, characters, layouts
gemini-3-pro-imageGoogle1K/2K/4K15/20/30hero art, 4K quality ceiling
gemini-2.5-flash-imageGoogle1K4legacy cheap fallback (Nano Banana)
gpt-image-2OpenAI1K/2K10/15alternative style; strong text-in-image
meshy-nano-bananaMeshyprovider-controlled3 creditslow-cost text or reference edit
meshy-nano-banana-2Meshyprovider-controlled6 creditsbalanced generation; multi-view 3D refs
meshy-nano-banana-proMeshyprovider-controlled9 creditshigher-quality generation/edit
meshy-gpt-image-2Meshyprovider-controlled9 text / 12 edit creditshigh-fidelity Meshy route
wan-2.7-t2i / -proAlibaba1K/2K(/4K pro)2-12content-permissive t2i (spicy/nudity game art other providers refuse)
wan-2.7-edit / -proAlibaba1K/2K(/4K pro)3-15content-permissive image EDIT (requires --image)

Cent costs are estimates. Meshy reports service credits and must never be converted to cents; re-check Meshy pricing before a batch.

Providers (--provider)

RouteKeyNotes
officialGOOGLE_API_KEY / OPENAI_API_KEYGoogle AI Studio / OpenAI direct
wavespeedWAVESPEED_API_KEYwavespeed.ai relay; the ONLY route for wan-2.7-*
meshyMESHY_API_KEYMeshy Text-to-Image / Image-to-Image; multi-view and pose controls
auto (default)—Meshy models use Meshy; other models prefer their official API, then WaveSpeed

Before a Meshy image task, read the complete meshy/reference.md. Do not load it for unrelated providers.

Video models (video --video-model) — for animated sprites

ModelRouteCostResDuration
seedance-2.0Volcano Ark 直链 (ARK_API_KEY)1.0¢/sup to 1080p4-15s
seedance-2.0-fast defaultArk 直链0.8¢/s720p4-15s
seedance-2.0-miniArk 直链0.6¢/s720p4-15s
wan-2.7wavespeed~5¢/s (est.)720p5/10s

Seedance model ids are Ark inference endpoints, overridable via SEEDANCE_2_0_EP / SEEDANCE_2_0_FAST_EP / SEEDANCE_2_0_MINI_EP.

CLI Reference

Set SKILL_DIR to the absolute directory containing this SKILL.md; do not assume a Claude-, Codex-, or repository-specific install path. Run from the project root. Keep runtime-loaded outputs under assets/; review-only refs/scratch elsewhere.

Generate / edit image

python3 "$SKILL_DIR/tools/asset_gen.py" image \
  --prompt "the full prompt" -o assets/img/bucket.png
  • --model (default gemini-3.1-flash-image), --provider auto|official|wavespeed|meshy
  • --size 512|1K|2K|4K, --aspect-ratio 1:1|16:9|... (default 1:1)
  • --image path — reference/edit input, repeatable (wan edit & gemini support multi-ref)
  • Meshy: --provider meshy --model meshy-*; --multi-view; optional --pose-mode a-pose|t-pose; Image-to-Image accepts 1-5 --image inputs

Typical picks:

  • cheap texture/kit → --model gemini-3.1-flash-lite-image
  • precise prop/character → default model
  • hero/keyart → --model gemini-3-pro-image --size 2K
  • spicy content → --model wan-2.7-t2i-pro; spicy edit → --model wan-2.7-edit-pro --image src.png
  • 3D-ready multi-view → --provider meshy --model meshy-nano-banana-2 --multi-view

Meshy multi-view → 3D handoff

python3 "$SKILL_DIR/tools/asset_gen.py" image \
  --provider meshy --model meshy-nano-banana-2 --multi-view \
  --prompt "single stylized clockwork knight, clean silhouette" \
  -o assets/img/clockwork_knight.png

The result JSON and <output>.meshy.json include the Meshy image task ID. The 3D skill can pass it directly to Multi-Image-to-3D, preserving all generated views without a download/re-upload round trip:

python3 "$ASSET_3D_SKILL_DIR/tools/asset_gen_3d.py" glb \
  --provider meshy --meshy-image-task IMAGE_TASK_ID \
  -o assets/glb/clockwork_knight.glb

If Meshy polling times out, do not submit again:

python3 "$SKILL_DIR/tools/asset_gen.py" resume-image \
  -o assets/img/clockwork_knight.png

Remove background

Read rembg.md (CLI, BG-color strategy, batch mode).

Item kit (one image, N props)

2x2/3x3 grid in one generation, then slice:

python3 "$SKILL_DIR/tools/grid_slice.py" grid.png \
  -o assets/img/items/ --grid 2x2 --names "bucket,stool,ladle,lantern"

Animated sprite (ref → pose → video → slice → loop → rembg)

  1. Reference (image, 1:1, solid BG color per rembg.md)
  2. Pose frame (image + --image ref, prompt = the action pose)
  3. Video (pose frame as first_frame):
python3 "$SKILL_DIR/tools/asset_gen.py" video \
  --prompt "walking to the right, smooth walk cycle, solid dark-green background" \
  --image assets/img/knight_walk_pose.png \
  --video-model seedance-2.0-mini --duration 4 -o assets/video/knight_walk.mp4
  1. Frames: ffmpeg -i knight_walk.mp4 -vsync 0 frames/%04d.png
  2. Loop trim (cycles only): python3 .../tools/find_loop_frame.py frames/
  3. Batch rembg: python3 .../tools/rembg_matting.py --batch frames/ -o assets/img/knight_walk/

A 4s mini video = ~2.4¢; a full walk cycle (ref 7¢ + pose 7¢ + video 2.4¢) ≈ 17¢.

Set budget

python3 "$SKILL_DIR/tools/asset_gen.py" set_budget 500

Only call when the user explicitly provides a budget. Shared assets/budget.json (the 3D skill records into the same file).

Output format

JSON to stdout. Cent-priced routes return cost_cents; Meshy returns credits, task_id, and paths for multi-view output. Progress/API noise goes to stderr:

_log=$(mktemp)
result=$(python3 .../asset_gen.py image --prompt "..." -o p.png 2>"$_log") || tail -20 "$_log"

Image Resolution

Use full generation resolution; downscale only to hit game PPU targets.

  • 1K default: textures, sprites, refs
  • 2K: HQ objects, backgrounds, title screens
  • 4K (gemini pro/lite, wan pro): large maps, panoramas

Small sprites problem

1024px downscaled to 64px goes muddy. Mitigations: design at 128px+; generate kits (more px per object); prompt bold simple forms (thick outlines, flat colors) that survive downscale.

What to Generate — Cheatsheet

For transparency, read rembg.md first (BG color strategy).

  • Background/scenic (2-10¢): flash-lite for simple; flash/pro --size 2K --aspect-ratio 16:9 for precise layout. No post-processing.
  • Texture (2-3¢): flash-lite. "Top-down view, uniform lighting, no shadows, seamless tileable."
  • Single prop/sprite: flash (precise) or flash-lite (cheap); solid BG color → rembg.
  • Character design (7¢): flash 1K; variants via --image ref (prompt only the CHANGE).
  • Spicy/nudity content: wan-2.7 family via wavespeed only; same composition rules apply.
  • 3D model reference → then hand off to the godot-asset-gen-3d skill: "3/4 front elevated camera angle, solid white background, matte finish, single centered subject, opaque glass."

Visual Pitfalls

  • Direction/orientation: generators can't do left/right reliably — generate ONE facing, flip at runtime.
  • Video size consistency: resize 1024px stills DOWN to video frame size before rembg (magick input.png -resize 720x720 -filter Lanczos out.png).
  • Playback fps: video frames are ~24fps; drive playback at 1.0/24.0, don't restart the loop on input jitter.
  • Image-to-image prompting: with --image, don't re-describe the subject — prompt only what CHANGES.
  • Generate multiple images in parallel via multiple Bash calls in one message.
  • Review PNGs before building on them (bad ref poisons every downstream step).

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.