#273 by GitHub stars

0x0funky/agent-sprite-forge

Agent Skill for generating 2D sprite sheets and map, transparent PNG frames, and animated GIFs from prompts.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/codeart2d/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Network or broad shell

5324342fdfab → 72fa5ad92d79

Compare on GitHub

Week of Oct 26, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

5324342fdfab → 5324342fdfab

Compare on GitHub

skills/generate2dmap/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5324342fdfab → 72fa5ad92d79

Compare on GitHub

Week of Oct 26, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5324342fdfab → 5324342fdfab

Compare on GitHub

skills/generate2dmedia/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5324342fdfab → 72fa5ad92d79

Compare on GitHub

Week of Oct 26, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5324342fdfab → 5324342fdfab

Compare on GitHub

skills/generate2dsprite/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5324342fdfab → 72fa5ad92d79

Compare on GitHub

Week of Oct 26, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5324342fdfab → 5324342fdfab

Compare on GitHub

skills/video2dsprite/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Network or broad shell

5324342fdfab → 72fa5ad92d79

Compare on GitHub

Week of Oct 26, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

5324342fdfab → 5324342fdfab

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 72fa5ad92d79b811acff464da32c8f3b1caa010f

git clone --filter=blob:none --no-checkout https://github.com/0x0funky/agent-sprite-forge.git .hotskills/0x0funky-agent-sprite-forge && git -C .hotskills/0x0funky-agent-sprite-forge checkout --detach 72fa5ad92d79b811acff464da32c8f3b1caa010f # Copy each selected skill directory from .hotskills/0x0funky-agent-sprite-forge into .claude/skills/<skill-name>/
5.3kGitHub stars
561stars in 7 days
5skills in this repository
1commit in 30 days

Heat

7.9
  • Star growth, last 7 daysAhead of 99% of tracked repositories
  • Star growth, last 24 hoursAhead of 98% of tracked repositories
  • Rank movement, last 7 daysAhead of 89% of tracked repositories
  • Commits, last 30 daysAhead of 54% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 7, 20265,324

Individual skills in this repository

How it works

codeart2d

When your agent uses it

Explicit-only last resort. Draws game art from code, with no image model - pixel sprites from a PixelSpec, flat vector props, UI and icons from portable SVG, rigged characters with planted feet, FX with a JS runtime, seam-proven autotiles, playable top-down layouts with collision, stylized parallax and ambient plate motion - palette-exact, with QA and review sheets. Use only when the user explicitly asks for code-drawn art, or when generate2dmedia route_media.py finds no image or video route (no-route, exit 3). Never the default - image generation (generate2dsprite, generate2dmap, video2dsprite) comes first for characters, props, maps and FX. Not for painterly, detailed or likeness art, HD-2D plates or realistic fire, smoke or water. Always disclose the result as code-drawn.

What it loads into context

Frontmatter

190 tokens

Always available to the agent

SKILL.md

2,506 tokens

When the skill is activated

Reference documents

37,887 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Use when
  2. Do not use when
  3. Capability check (once per session)
  4. Art source
  5. Host notes
  6. Commands
  7. Hello sprite
  8. Pipeline
  9. Rules
  10. Acceptance

Scripts executed separately

  • references/runtime/fx-template.mjs
  • scripts/ambient_bake.py
  • scripts/autotile_build.py
  • scripts/codeart_core.py
  • scripts/forge_core.py
  • scripts/forge_nav.py
  • scripts/forge_schema.py
  • scripts/fx_build.py
  • scripts/fx_verify.mjs
  • scripts/layout_build.py
  • scripts/parallax_build.py
  • scripts/pixel_qa.py
  • scripts/render_pixelspec.py
  • scripts/rig_animate.py
  • scripts/svg_render.py
  • ../generate2dmedia/scripts/route_media.py
  • ../generate2dsprite/scripts/build_animation_clips.py

Files

  • ../../.claude-plugin/marketplace.jsonasset333 bytes
  • ../../.claude-plugin/plugin.jsonasset555 bytes
  • SKILL.mdcore9,848 bytes
  • SKILL.mdcore9,848 bytes
  • SKILL.mdcore9,848 bytes
  • SKILL.mdcore9,848 bytes
  • SKILL.mdcore9,848 bytes
  • SKILL.mdcore9,848 bytes
  • SKILL.mdcore9,848 bytes
  • agents/openai.yamlasset364 bytes
  • examples/dirt-path.material.jsonasset2,020 bytes
  • examples/hero.anim.jsonasset2,216 bytes
  • examples/hero.rig.svgasset3,295 bytes
  • examples/meadow-layout.jsonasset13,244 bytes
  • examples/palette.jsonasset447 bytes
  • examples/parallax-gen.jsonasset1,434 bytes
  • examples/plate-effects.jsonasset1,130 bytes
  • examples/potion-icons.svgasset3,326 bytes
  • examples/slash.fx.jsonasset2,089 bytes
  • examples/slime.pixelspec.jsonasset3,357 bytes
  • examples/walker16x24.pixelspec.jsonasset5,224 bytes
  • examples/water-grass.material.jsonasset1,427 bytes
  • references/fx-language.mddoc9,747 bytes
  • references/fx-runtime-contract.mddoc7,508 bytes
  • references/layouts-and-parallax.mddoc20,931 bytes
  • references/pixelspec.mddoc11,070 bytes
  • references/rasterizers.mddoc4,992 bytes
  • references/rig-animation.mddoc18,550 bytes
  • references/runtime/fx-template.mjsruns13,262 bytes
  • references/schemas/codeart.schema.jsonasset53,525 bytes
  • references/schemas/common.schema.jsonasset13,239 bytes
  • references/schemas/map.schema.jsonasset131,541 bytes
  • references/schemas/sprite.schema.jsonasset67,057 bytes
  • references/style-envelope.mddoc5,195 bytes
  • references/svg-profile.mddoc8,592 bytes
  • references/tiles-and-maps.mddoc15,772 bytes
  • scripts/ambient_bake.pyruns33,234 bytes
  • scripts/autotile_build.pyruns105,163 bytes
  • scripts/codeart_core.pyruns121,672 bytes
  • scripts/forge_core.pyruns80,216 bytes
  • scripts/forge_nav.pyruns97,789 bytes
  • scripts/forge_schema.pyruns26,699 bytes
  • scripts/fx_build.pyruns50,526 bytes
  • scripts/fx_verify.mjsruns30,415 bytes
  • scripts/layout_build.pyruns109,133 bytes
  • scripts/parallax_build.pyruns47,841 bytes
  • scripts/pixel_qa.pyruns22,051 bytes
  • scripts/render_pixelspec.pyruns44,029 bytes
  • scripts/rig_animate.pyruns120,897 bytes
  • scripts/svg_render.pyruns26,869 bytes
  • ../generate2dmap/SKILL.mddoc11,789 bytes
  • ../generate2dmedia/scripts/route_media.pyruns42,718 bytes
  • ../generate2dsprite/SKILL.mddoc14,298 bytes
  • ../generate2dsprite/scripts/build_animation_clips.pyruns75,686 bytes
  • ../video2dsprite/SKILL.mddoc15,298 bytes
Read SKILL.md

# Code Art 2D

You write the art as text (PixelSpec JSON, portable SVG, rig, FX, material, layout or parallax
specs); the scripts render, check and package it. No image model is involved. It is a declared art
source (`art_source: "code"`), not a placeholder.

## Use when

- The user explicitly asks for code-drawn art: a PixelSpec or SVG sprite, palette variants drawn in code, a code rig, code FX, a seam-proven autotile set, a code-made layout, stylized parallax or ambient loops.
- `route_media.py` prints `no-route` (exit 3): no API key is configured and no local image or video route exists. Say so, and offer to add a key or a CLI as well.
- Pose and layout guides that help an image model (support material, not final art).

## Do not use when
View the complete source on GitHub

Skills included

  • codeart2d
  • generate2dmap
  • generate2dmedia
  • generate2dsprite
  • video2dsprite

Repository facts

License
MIT
Created
Apr 23, 2026
Last pushed
Nov 5, 2026
Forks
512
Open issues
7
Project activity
Active

Rank over the last 12 weeks

Now #273 · best #238 · down 14 in 30 days

  1. #278 on Oct 31
  2. #276 from Nov 1 to Nov 2
  3. #277 on Nov 3
  4. #278 on Nov 4
  5. #274 on Nov 5
  6. #273 since Nov 6
69 earlier periods
  1. #238 on Aug 2
  2. #239 from Aug 7 to Aug 8
  3. #235 on Aug 9
  4. #242 on Aug 10
  5. #237 on Aug 11
  6. #234 on Aug 12
  7. #237 on Aug 13
  8. #236 from Aug 14 to Aug 15
  9. #239 from Aug 16 to Aug 17
  10. #245 on Aug 18
  11. #243 on Aug 19
  12. #242 on Aug 20
  13. #241 on Aug 21
  14. #238 on Aug 22
  15. #243 from Aug 23 to Aug 25
  16. #239 on Aug 26
  17. #240 on Aug 27
  18. #239 from Aug 28 to Aug 30
  19. #240 on Aug 31
  20. #245 on Sep 1
  21. #241 on Sep 2
  22. #250 on Sep 3
  23. #245 on Sep 4
  24. #247 on Sep 5
  25. #244 on Sep 6
  26. #247 on Sep 7
  27. #245 on Sep 8
  28. #248 on Sep 9
  29. #246 on Sep 10
  30. #247 from Sep 11 to Sep 12
  31. #251 on Sep 13
  32. #252 on Sep 14
  33. #253 on Sep 15
  34. #251 on Sep 16
  35. #249 on Sep 17
  36. #253 on Sep 18
  37. #249 on Sep 19
  38. #253 on Sep 20
  39. #254 from Sep 21 to Sep 22
  40. #255 on Sep 23
  41. #254 on Sep 24
  42. #252 on Sep 25
  43. #253 from Sep 26 to Sep 27
  44. #257 from Sep 28 to Sep 29
  45. #254 on Sep 30
  46. #256 on Oct 1
  47. #259 on Oct 2
  48. #255 on Oct 3
  49. #252 on Oct 4
  50. #256 from Oct 5 to Oct 6
  51. #259 from Oct 7 to Oct 8
  52. #262 on Oct 9
  53. #259 on Oct 10
  54. #262 on Oct 11
  55. #265 on Oct 12
  56. #266 on Oct 13
  57. #265 on Oct 14
  58. #266 on Oct 15
  59. #263 on Oct 16
  60. #266 from Oct 17 to Oct 18
  61. #267 on Oct 19
  62. #266 on Oct 20
  63. #270 on Oct 21
  64. #271 on Oct 22
  65. #269 on Oct 23
  66. #270 on Oct 24
  67. #272 on Oct 25
  68. #277 on Oct 28
  69. #279 from Oct 29 to Oct 30

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Changed on Oct 27, 2026

New signal: Dangerous shell operation

No longer found: Access to secrets

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 41 notes
  • skills/codeart2d/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeart2d/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeart2d/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeart2d/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeart2d/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeart2d/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmap/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmap/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmap/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmap/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmap/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmap/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmedia/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmedia/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmedia/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmedia/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmedia/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmedia/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dmedia/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate2dsprite/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 675 signals by file

.claude-plugin/plugin.json

  • Network accessline 5
    "description": "Game-ready 2D sprites, maps, code-drawn pixel art, video-derived animation and API media generation as agent skills, with deterministic Python processors.",   "author": { "name": "0x0funky" },   "homepage": "https://github.c
  • Network accessline 6
    "author": { "name": "0x0funky" },   "homepage": "https://github.com/0x0funky/agent-sprite-forge",   "repository": "https://github.com/0x0funky/agent-sprite-forge",
  • Network accessline 7
    "homepage": "https://github.com/0x0funky/agent-sprite-forge",
  • Network accessline 8
    "repository": "https://github.com/0x0funky/agent-sprite-forge",

skills/codeart2d/examples/hero.rig.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"

skills/codeart2d/examples/potion-icons.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="128" height="32" viewBox="0 0 128 32" data-codeart="icons">

skills/codeart2d/references/rig-animation.md

  • Network accessline 44
    <svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"

skills/codeart2d/references/runtime/fx-template.mjs

  • Executable scriptline 1
    Executable file

skills/codeart2d/references/schemas/codeart.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/codeart.schema.json",

skills/codeart2d/references/schemas/common.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/common.schema.json",

skills/codeart2d/references/schemas/map.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/map.schema.json",

skills/codeart2d/references/schemas/sprite.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/sprite.schema.json",

skills/codeart2d/references/svg-profile.md

  • Network accessline 41
    <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
  • Network accessline 69
    | Code | Problem | Fix | |---|---|---| | `xml` | not well-formed XML, a DOCTYPE/ENTITY, or a root that is not `<svg>` | write plain SVG with `xmlns="http://www.w3.org/2000/svg"` |
  • Network accessline 70
    |---|---|---| | `xml` | not well-formed XML, a DOCTYPE/ENTITY, or a root that is not `<svg>` | write plain SVG with `xmlns="http://www.w3.org/2000/svg"` | | `viewbox` | `viewBox` missing, not four numbers, not integers, or not equal to the 
  • Network accessline 71
    | `xml` | not well-formed XML, a DOCTYPE/ENTITY, or a root that is not `<svg>` | write plain SVG with `xmlns="http://www.w3.org/2000/svg"` |

skills/codeart2d/scripts/ambient_bake.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/codeart2d/scripts/autotile_build.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/codeart2d/scripts/codeart_core.py

  • Executable scriptline 1
    Executable file
  • Network accessline 337
    SVG_NS = "http://www.w3.org/2000/svg"
  • Network accessline 338
    XLINK_NS = "http://www.w3.org/1999/xlink"
  • Network accessline 391
    raise CodeArtError(f"SVG is not well-formed XML: {exc}") from None     if root.tag != _q("svg"):         raise CodeArtError('root element must be <svg xmlns="http://www.w3.org/2000/svg">')
  • Network accessline 392
    if root.tag != _q("svg"):         raise CodeArtError('root element must be <svg xmlns="http://www.w3.org/2000/svg">')     return root
  • Network accessline 393
    raise CodeArtError('root element must be <svg xmlns="http://www.w3.org/2000/svg">')
  • Access to secretsline 868
    [Credential-related source omitted]
  • Access to secretsline 880
    [Credential-related source omitted]
  • Network accessline 1043
    "....obbo.obbo...", "....obbo.obbo...", "...ooooo.ooooo..", "................", ) _SVG_OPEN = '<svg xmlns="http://www.w3.org/2000/svg"'
  • Network accessline 1045
    _SVG_OPEN = '<svg xmlns="http://www.w3.org/2000/svg"'
  • Network accessline 1133
    '<line x1="20" y1="2" x2="30" y2="12" stroke="#22142b" stroke-width="1"/></svg>')     rig = f'{_SVG_OPEN} width="32" height="32" viewBox="0 0 32 32" shape-rendering="crispEdges">'     t07 = ('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl
  • Network accessline 1134
    rig = f'{_SVG_OPEN} width="32" height="32" viewBox="0 0 32 32" shape-rendering="crispEdges">'     t07 = ('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" '            'height="16" viewBox="0 0 3
  • Network accessline 1135
    t07 = ('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" '
  • Access to secretsline 1999
    [Credential-related source omitted]

skills/codeart2d/scripts/forge_core.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 150
    [Credential-related source omitted]
  • Possible obfuscationline 327
    text = data[1:] if data.startswith("<U+FEFF>") else data
  • Access to secretsline 660
    [Credential-related source omitted]

skills/codeart2d/scripts/forge_nav.py

  • Executable scriptline 1
    Executable file

skills/codeart2d/scripts/forge_schema.py

  • Executable scriptline 1
    Executable file

skills/codeart2d/scripts/fx_build.py

  • Executable scriptline 1
    Executable file
  • Network accessline 547
    def _svg(width: int, height: int, body: str, view: tuple[int, int, int, int] | None = None) -> str:     x0, y0, w, h = view or (0, 0, width, height)     return (f'<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="{x0
  • Network accessline 548
    x0, y0, w, h = view or (0, 0, width, height)     return (f'<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="{x0} {y0} {w} {h}">'             f"{body}</svg>")
  • Network accessline 549
    return (f'<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="{x0} {y0} {w} {h}">'

skills/codeart2d/scripts/fx_verify.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/codeart2d/scripts/layout_build.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/codeart2d/scripts/parallax_build.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 677
    [Credential-related source omitted]

skills/codeart2d/scripts/pixel_qa.py

  • Executable scriptline 1
    Executable file

skills/codeart2d/scripts/render_pixelspec.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 528
    [Credential-related source omitted]

skills/codeart2d/scripts/rig_animate.py

  • Executable scriptline 1
    Executable file
  • Network accessline 99
    SVG_NS = "http://www.w3.org/2000/svg"  # codeart_core.SVG_NS
  • Access to secretsline 1711
    [Credential-related source omitted]

skills/codeart2d/scripts/svg_render.py

  • Executable scriptline 1
    Executable file

skills/generate2dmap/SKILL.md

  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]

skills/generate2dmap/references/parallax-backgrounds.md

  • Network accessline 146
    Primary sources (checked 2026-09-11 for the improved fork's version of this guide): Godot's [2D parallax tutorial](https://docs.godotengine.org/en/stable/tutorials/2d/2d_parallax.html) covers scroll scale, repeat sizing and the extra covera

skills/generate2dmap/references/runtime/map-runtime.mjs

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 542
    const binary = atob(data);

skills/generate2dmap/references/schemas/common.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/common.schema.json",

skills/generate2dmap/references/schemas/map.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/map.schema.json",

skills/generate2dmap/scripts/build_motion_mask.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 315
    [Credential-related source omitted]

skills/generate2dmap/scripts/build_scene_preview.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 797
    page.on("request", (request) => {       const url = request.url();       if (url !== config.url && !/^(data|about):/i.test(url)) result.requests.push(url.slice(0, 200));
  • Network accessline 798
    const url = request.url();       if (url !== config.url && !/^(data|about):/i.test(url)) result.requests.push(url.slice(0, 200));     });
  • Network accessline 799
    if (url !== config.url && !/^(data|about):/i.test(url)) result.requests.push(url.slice(0, 200));
  • Access to secretsline 1644
    [Credential-related source omitted]

skills/generate2dmap/scripts/compose_layered_preview.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/conform_background.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/edit_locality_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/export_godot.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/export_ldtk.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 73
    # LDtk 1.5.3 JSON (https://ldtk.io/json, schema https://ldtk.io/files/JSON_SCHEMA.json): the fields this
  • Network accessline 669
    tilesets = list(tileset_defs.values()) + ([props_tileset] if props_tileset else [])     project = {         "__header__": {"fileType": "LDtk Project JSON", "app": "LDtk", "doc": "https://ldtk.io/json",
  • Network accessline 670
    project = {         "__header__": {"fileType": "LDtk Project JSON", "app": "LDtk", "doc": "https://ldtk.io/json",                        "schema": "https://ldtk.io/files/JSON_SCHEMA.json", "appAuthor": "Sebastien 'deepnight' Benard",
  • Network accessline 671
    "__header__": {"fileType": "LDtk Project JSON", "app": "LDtk", "doc": "https://ldtk.io/json",
  • Network accessline 672
    "schema": "https://ldtk.io/files/JSON_SCHEMA.json", "appAuthor": "Sebastien 'deepnight' Benard",
  • Network accessline 673
    "appVersion": LDTK_VERSION, "url": "https://ldtk.io"},

skills/generate2dmap/scripts/export_tiled.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/extract_platform_strip.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/extract_prop_pack.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/extract_scene_lights.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/extract_terrain_tiles.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/forge_av.py

  • Executable scriptline 1
    Executable file

skills/generate2dmap/scripts/forge_core.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 150
    [Credential-related source omitted]
  • Possible obfuscationline 327
    text = data[1:] if data.startswith("<U+FEFF>") else data
  • Access to secretsline 660
    [Credential-related source omitted]

skills/generate2dmap/scripts/forge_matte.py

  • Executable scriptline 1
    Executable file

skills/generate2dmap/scripts/forge_nav.py

  • Executable scriptline 1
    Executable file

skills/generate2dmap/scripts/forge_schema.py

  • Executable scriptline 1
    Executable file

skills/generate2dmap/scripts/map_bundle.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/map_nav.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/scene_layout_guide.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/scene_motion.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/validate_chunks.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/validate_layout.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/validate_parallax.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmap/scripts/validate_stage.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmedia/SKILL.md

  • Access to secretsline 47
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]

skills/generate2dmedia/references/api-usage.md

  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Network accessline 248
    `--base-url https://gateway.example/v1` replaces the provider's base URL. It sends

skills/generate2dmedia/references/capabilities.json

  • Network accessline 4
    "notes": "One record per model id, checked against each vendor's official documentation on verifiedAt. No live call was made (the owner has no keys): request shapes follow the docs only, and the community reports real-world differences. Fie
  • Network accessline 5
    "retired": [     {"provider": "openai", "model": "gpt-image-1", "shutdown": "2026-10-23", "dropped": true, "use": "gpt-image-2.5-sunburst", "source": "https://developers.openai.com/api/docs/deprecations"},     {"provider": "openai", "model"
  • Network accessline 6
    {"provider": "openai", "model": "gpt-image-1", "shutdown": "2026-10-23", "dropped": true, "use": "gpt-image-2.5-sunburst", "source": "https://developers.openai.com/api/docs/deprecations"},
  • Network accessline 7
    {"provider": "openai", "model": "gpt-image-1.5", "shutdown": "2026-12-01", "use": "gpt-image-2.5-sunburst", "source": "https://developers.openai.com/api/docs/deprecations"},
  • Network accessline 8
    {"provider": "openai", "model": "gpt-image-1-mini", "shutdown": "2026-12-01", "use": "gpt-image-2.5-sunburst", "source": "https://developers.openai.com/api/docs/deprecations"},
  • Network accessline 9
    {"provider": "openai", "model": "chatgpt-image-latest", "shutdown": "2026-12-01", "use": "gpt-image-2.5-sunburst", "source": "https://developers.openai.com/api/docs/deprecations"},
  • Network accessline 10
    {"provider": "openai", "model": "dall-e-3", "shutdown": "2026-05-12", "use": "gpt-image-2.5-sunburst", "source": "https://developers.openai.com/api/docs/deprecations"},
  • Network accessline 11
    {"provider": "openai", "model": "dall-e-2", "shutdown": "2026-05-12", "use": "gpt-image-2.5-sunburst", "source": "https://developers.openai.com/api/docs/deprecations"},
  • Network accessline 12
    {"provider": "openai", "model": "sora-2", "shutdown": "2026-09-24", "dropped": true, "use": "an image-to-video route of xai, byteplus or fal", "source": "https://developers.openai.com/api/docs/deprecations"},
  • Network accessline 13
    {"provider": "gemini", "model": "gemini-2.5-flash-image", "shutdown": "2026-10-02", "use": "gemini-3.1-flash-image", "source": "https://ai.google.dev/gemini-api/docs/deprecations"},
  • Network accessline 14
    {"provider": "gemini", "model": "gemini-3.1-flash-image-preview", "shutdown": "2026-06-25", "use": "gemini-3.1-flash-image", "source": "https://ai.google.dev/gemini-api/docs/deprecations"},
  • Network accessline 15
    {"provider": "gemini", "model": "gemini-3-pro-image-preview", "shutdown": "2026-06-25", "use": "gemini-3-pro-image", "source": "https://ai.google.dev/gemini-api/docs/deprecations"},
  • Network accessline 16
    {"provider": "gemini", "model": "imagen-4.0-generate-001", "shutdown": "2026-08-17", "use": "gemini-3.1-flash-image", "source": "https://ai.google.dev/gemini-api/docs/deprecations"},
  • Network accessline 17
    {"provider": "gemini", "model": "imagen-4.0-ultra-generate-001", "shutdown": "2026-08-17", "use": "gemini-3-pro-image", "source": "https://ai.google.dev/gemini-api/docs/deprecations"},
  • Network accessline 18
    {"provider": "gemini", "model": "imagen-4.0-fast-generate-001", "shutdown": "2026-08-17", "use": "gemini-3.1-flash-image", "source": "https://ai.google.dev/gemini-api/docs/deprecations"},
  • Network accessline 19
    {"provider": "gemini", "model": "veo-3.1-generate-preview", "shutdown": "2026-10-22", "dropped": true, "use": "fal:fal-ai/veo3.1/first-last-frame-to-video", "source": "https://ai.google.dev/gemini-api/docs/deprecations"},
  • Network accessline 20
    {"provider": "gemini", "model": "veo-3.1-fast-generate-preview", "shutdown": "2026-10-22", "dropped": true, "use": "fal:fal-ai/veo3.1/fast/first-last-frame-to-video", "source": "https://ai.google.dev/gemini-api/docs/deprecations"},
  • Network accessline 21
    {"provider": "gemini", "model": "veo-3.1-lite-generate-preview", "shutdown": "2026-10-22", "dropped": true, "use": "an image-to-video route of xai, byteplus or fal", "source": "https://ai.google.dev/gemini-api/docs/deprecations"},
  • Network accessline 22
    {"provider": "xai", "model": "grok-imagine-image-quality", "shutdown": "2026-11-02", "use": "grok-imagine-image-2.0 with --quality low", "source": "https://docs.x.ai/developers/migration/imagine-image-quality-nov-2"}
  • Network accessline 26
    "label": "OpenAI API",       "keyEnv": ["OPENAI_API_KEY"],       "apiBase": "https://api.openai.com/v1",
  • Network accessline 27
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Network accessline 28
    "apiBase": "https://api.openai.com/v1",
  • Network accessline 30
    "kinds": ["image"],       "verifiedAt": "2026-10-06",       "docs": ["https://developers.openai.com/api/reference/resources/images", "https://developers.openai.com/api/docs/guides/image-generation", "https://developers.openai.com/api/docs/d
  • Network accessline 31
    "verifiedAt": "2026-10-06",       "docs": ["https://developers.openai.com/api/reference/resources/images", "https://developers.openai.com/api/docs/guides/image-generation", "https://developers.openai.com/api/docs/deprecations", "https://dev
  • Network accessline 32
    "docs": ["https://developers.openai.com/api/reference/resources/images", "https://developers.openai.com/api/docs/guides/image-generation", "https://developers.openai.com/api/docs/deprecations", "https://developers.openai.com/api/docs/pricin
  • Network accessline 35
    "models": {         "gpt-image-2.5-sunburst": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst"],
  • Network accessline 36
    "gpt-image-2.5-sunburst": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst"],           "image": {"generate": true, "edit": "mask", "refs_max": 16, "tran
  • Network accessline 37
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst"],
  • Network accessline 42
    },         "gpt-image-2.5-flare": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-2.5-flare"],
  • Network accessline 43
    "gpt-image-2.5-flare": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-2.5-flare"],           "image": {"generate": true, "edit": "mask", "refs_max": 16, "transparen
  • Network accessline 44
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-2.5-flare"],
  • Network accessline 49
    },         "gpt-image-2": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-2"],
  • Network accessline 50
    "gpt-image-2": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-2"],           "image": {"generate": true, "edit": "mask", "refs_max": 16, "transparent_bg": "native",
  • Network accessline 51
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-2"],
  • Network accessline 57
    },         "gpt-image-1.5": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-1.5"],
  • Network accessline 58
    "gpt-image-1.5": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-1.5"],           "image": {"generate": true, "edit": "mask", "refs_max": 16, "transparent_bg": "nati
  • Network accessline 59
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-1.5"],
  • Network accessline 63
    },         "gpt-image-1-mini": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-1-mini"],
  • Network accessline 64
    "gpt-image-1-mini": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-1-mini"],           "image": {"generate": true, "edit": "mask", "refs_max": 16, "transparent_bg":
  • Network accessline 65
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://developers.openai.com/api/docs/models/gpt-image-1-mini"],
  • Network accessline 73
    "label": "Google Gemini API",       "keyEnv": ["GOOGLE_API_KEY", "GEMINI_API_KEY"],       "apiBase": "https://generativelanguage.googleapis.com/v1beta",
  • Network accessline 74
    [Credential-related source omitted]
  • Access to secretsline 74
    [Credential-related source omitted]
  • Network accessline 75
    "apiBase": "https://generativelanguage.googleapis.com/v1beta",
  • Access to secretsline 76
    [Credential-related source omitted]
  • Network accessline 77
    "kinds": ["image"],       "verifiedAt": "2026-10-06",       "docs": ["https://ai.google.dev/gemini-api/docs/generate-content/image-generation", "https://ai.google.dev/api/generate-content", "https://ai.google.dev/gemini-api/docs/api-key", "
  • Network accessline 78
    "verifiedAt": "2026-10-06",       "docs": ["https://ai.google.dev/gemini-api/docs/generate-content/image-generation", "https://ai.google.dev/api/generate-content", "https://ai.google.dev/gemini-api/docs/api-key", "https://ai.google.dev/gemi
  • Network accessline 79
    "docs": ["https://ai.google.dev/gemini-api/docs/generate-content/image-generation", "https://ai.google.dev/api/generate-content", "https://ai.google.dev/gemini-api/docs/api-key", "https://ai.google.dev/gemini-api/docs/generate-content/api-e
  • Network accessline 82
    "models": {         "gemini-3.1-flash-image": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image"],
  • Network accessline 83
    "gemini-3.1-flash-image": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image"],           "image": {"generate": true, "edit": "instruct", "refs_max": 14, "t
  • Network accessline 84
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image"],
  • Network accessline 91
    },         "gemini-3-pro-image": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image"],
  • Network accessline 92
    "gemini-3-pro-image": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image"],           "image": {"generate": true, "edit": "instruct", "refs_max": 14, "transpare
  • Network accessline 93
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image"],
  • Network accessline 100
    },         "gemini-3.1-flash-lite-image": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-lite-image"],
  • Network accessline 101
    "gemini-3.1-flash-lite-image": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-lite-image"],           "image": {"generate": true, "edit": "instruct", "refs_ma
  • Network accessline 102
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-lite-image"],
  • Network accessline 113
    "label": "xAI API",       "keyEnv": ["XAI_API_KEY"],       "apiBase": "https://api.x.ai/v1",
  • Network accessline 114
    [Credential-related source omitted]
  • Access to secretsline 114
    [Credential-related source omitted]
  • Network accessline 115
    "apiBase": "https://api.x.ai/v1",
  • Network accessline 117
    "kinds": ["image", "video"],       "verifiedAt": "2026-10-06",       "docs": ["https://docs.x.ai/developers/model-capabilities/video/generation", "https://docs.x.ai/developers/model-capabilities/video/reference-to-video", "https://docs.x.ai
  • Network accessline 118
    "verifiedAt": "2026-10-06",       "docs": ["https://docs.x.ai/developers/model-capabilities/video/generation", "https://docs.x.ai/developers/model-capabilities/video/reference-to-video", "https://docs.x.ai/developers/model-capabilities/imag
  • Network accessline 119
    "docs": ["https://docs.x.ai/developers/model-capabilities/video/generation", "https://docs.x.ai/developers/model-capabilities/video/reference-to-video", "https://docs.x.ai/developers/model-capabilities/images/generation", "https://docs.x.ai
  • Network accessline 123
    "models": {         "grok-imagine-image-2.0": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-image-2.0"],
  • Network accessline 124
    "grok-imagine-image-2.0": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-image-2.0"],           "image": {"generate": true, "edit": "instruct", "refs_max": 5, "transparent
  • Network accessline 125
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-image-2.0"],
  • Network accessline 132
    },         "grok-imagine-image": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-image"],
  • Network accessline 133
    "grok-imagine-image": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-image"],           "image": {"generate": true, "edit": "instruct", "refs_max": 1, "transparent_bg": "n
  • Network accessline 134
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-image"],
  • Network accessline 140
    },         "grok-imagine-video-1.5": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-video-1.5", "https://docs.x.ai/developers/model-capabilities/video/reference-to-video"]
  • Network accessline 141
    "grok-imagine-video-1.5": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-video-1.5", "https://docs.x.ai/developers/model-capabilities/video/reference-to-video"],          
  • Network accessline 142
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-video-1.5", "https://docs.x.ai/developers/model-capabilities/video/reference-to-video"],
  • Network accessline 148
    },         "grok-imagine-video-1.5-lite": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-video-1.5-lite"],
  • Network accessline 149
    "grok-imagine-video-1.5-lite": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-video-1.5-lite"],           "video": {"i2v": true, "last_frame": false, "durations": {"min": 
  • Network accessline 150
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-video-1.5-lite"],
  • Network accessline 156
    },         "grok-imagine-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-video"],
  • Network accessline 157
    "grok-imagine-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-video"],           "video": {"i2v": true, "last_frame": false, "durations": {"min": 1, "max": 15, "ste
  • Network accessline 158
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.x.ai/developers/models/grok-imagine-video"],
  • Network accessline 167
    "label": "BytePlus ModelArk API",       "keyEnv": ["ARK_API_KEY"],       "apiBase": "https://ark.ap-southeast.bytepluses.com/api/v3",
  • Network accessline 168
    [Credential-related source omitted]
  • Access to secretsline 168
    [Credential-related source omitted]
  • Network accessline 169
    "apiBase": "https://ark.ap-southeast.bytepluses.com/api/v3",
  • Network accessline 171
    "kinds": ["image", "video"],       "verifiedAt": "2026-10-06",       "docs": ["https://docs.byteplus.com/en/docs/ModelArk/1541523", "https://docs.byteplus.com/en/docs/ModelArk/1520757", "https://docs.byteplus.com/en/docs/ModelArk/1521309", 
  • Network accessline 172
    "verifiedAt": "2026-10-06",       "docs": ["https://docs.byteplus.com/en/docs/ModelArk/1541523", "https://docs.byteplus.com/en/docs/ModelArk/1520757", "https://docs.byteplus.com/en/docs/ModelArk/1521309", "https://docs.byteplus.com/en/docs/
  • Network accessline 173
    "docs": ["https://docs.byteplus.com/en/docs/ModelArk/1541523", "https://docs.byteplus.com/en/docs/ModelArk/1520757", "https://docs.byteplus.com/en/docs/ModelArk/1521309", "https://docs.byteplus.com/en/docs/ModelArk/1330310", "https://docs.b
  • Network accessline 177
    "models": {         "dola-seedream-5-0-pro-260628": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/modelark/seedream-5-0-pro"],
  • Network accessline 178
    "dola-seedream-5-0-pro-260628": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/modelark/seedream-5-0-pro"],           "image": {"generate": true, "edit": "instruct", "refs_max": 10, "tra
  • Network accessline 179
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/modelark/seedream-5-0-pro"],
  • Network accessline 185
    },         "dola-seedream-5-0-flash-260915": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/ModelArk/1541523"],
  • Network accessline 186
    "dola-seedream-5-0-flash-260915": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/ModelArk/1541523"],           "image": {"generate": true, "edit": "instruct", "refs_max": 10, "transparen
  • Network accessline 187
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/ModelArk/1541523"],
  • Network accessline 193
    },         "dreamina-seedance-2-0-260128": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/modelark/seedance-2-0", "https://docs.byteplus.com/en/docs/ModelArk/1520757"],
  • Network accessline 194
    "dreamina-seedance-2-0-260128": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/modelark/seedance-2-0", "https://docs.byteplus.com/en/docs/ModelArk/1520757"],           "video": {"i2v": t
  • Network accessline 195
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/modelark/seedance-2-0", "https://docs.byteplus.com/en/docs/ModelArk/1520757"],
  • Network accessline 203
    },         "dreamina-seedance-2-0-mini-260615": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/modelark/seedance-2-0", "https://docs.byteplus.com/en/docs/ModelArk/1520757"],
  • Network accessline 204
    "dreamina-seedance-2-0-mini-260615": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/modelark/seedance-2-0", "https://docs.byteplus.com/en/docs/ModelArk/1520757"],           "video": {"i2
  • Network accessline 205
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/modelark/seedance-2-0", "https://docs.byteplus.com/en/docs/ModelArk/1520757"],
  • Network accessline 213
    },         "dreamina-seedance-2-0-fast-260128": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/ModelArk/1520757"],
  • Network accessline 214
    "dreamina-seedance-2-0-fast-260128": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/ModelArk/1520757"],           "video": {"i2v": true, "last_frame": true, "durations": {"min": 4, "max"
  • Network accessline 215
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/ModelArk/1520757"],
  • Network accessline 222
    },         "dreamina-seedance-2-5-260628": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/ModelArk/2607688", "https://docs.byteplus.com/en/docs/ModelArk/1520757"],
  • Network accessline 223
    "dreamina-seedance-2-5-260628": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/ModelArk/2607688", "https://docs.byteplus.com/en/docs/ModelArk/1520757"],           "video": {"i2v": true, 
  • Network accessline 224
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://docs.byteplus.com/en/docs/ModelArk/2607688", "https://docs.byteplus.com/en/docs/ModelArk/1520757"],
  • Network accessline 236
    "label": "fal.ai API",       "keyEnv": ["FAL_KEY"],       "apiBase": "https://queue.fal.run",
  • Network accessline 237
    [Credential-related source omitted]
  • Network accessline 238
    "apiBase": "https://queue.fal.run",
  • Network accessline 240
    "kinds": ["image", "video"],       "verifiedAt": "2026-10-06",       "docs": ["https://fal.ai/docs/model-apis/model-endpoints/queue", "https://fal.ai/docs/documentation/model-apis/errors.md", "https://fal.ai/docs/documentation/model-apis/me
  • Network accessline 241
    "verifiedAt": "2026-10-06",       "docs": ["https://fal.ai/docs/model-apis/model-endpoints/queue", "https://fal.ai/docs/documentation/model-apis/errors.md", "https://fal.ai/docs/documentation/model-apis/media-expiration", "https://fal.ai/do
  • Network accessline 242
    "docs": ["https://fal.ai/docs/model-apis/model-endpoints/queue", "https://fal.ai/docs/documentation/model-apis/errors.md", "https://fal.ai/docs/documentation/model-apis/media-expiration", "https://fal.ai/docs/documentation/setting-up/authen
  • Network accessline 243
    "uploads": "inputs go to the fal CDN first, as the official fal_client does (POST https://rest.fal.ai/storage/auth/token?storage_type=fal-cdn-v3, then POST https://v3.fal.media/files/upload): free requests made before the paid one; --provid
  • Network accessline 247
    "models": {         "fal-ai/veo3.1/first-last-frame-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/veo3.1/first-last-frame-to-video/api"],
  • Network accessline 248
    "fal-ai/veo3.1/first-last-frame-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/veo3.1/first-last-frame-to-video/api"],           "video": {"i2v": true, "last_frame": true, "duratio
  • Network accessline 249
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/veo3.1/first-last-frame-to-video/api"],
  • Network accessline 256
    },         "fal-ai/veo3.1/fast/first-last-frame-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/veo3.1/fast/first-last-frame-to-video/api"],
  • Network accessline 257
    "fal-ai/veo3.1/fast/first-last-frame-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/veo3.1/fast/first-last-frame-to-video/api"],           "video": {"i2v": true, "last_frame": true
  • Network accessline 258
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/veo3.1/fast/first-last-frame-to-video/api"],
  • Network accessline 265
    },         "fal-ai/kling-video/v3/pro/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/kling-video/v3/pro/image-to-video/api"],
  • Network accessline 266
    "fal-ai/kling-video/v3/pro/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/kling-video/v3/pro/image-to-video/api"],           "video": {"i2v": true, "last_frame": true, "durat
  • Network accessline 267
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/kling-video/v3/pro/image-to-video/api"],
  • Network accessline 274
    },         "fal-ai/kling-video/v3/standard/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/kling-video/v3/standard/image-to-video/api"],
  • Network accessline 275
    "fal-ai/kling-video/v3/standard/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/kling-video/v3/standard/image-to-video/api"],           "video": {"i2v": true, "last_frame": tr
  • Network accessline 276
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/kling-video/v3/standard/image-to-video/api"],
  • Network accessline 282
    },         "luma/agent/ray/v3.2/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/luma/agent/ray/v3.2/image-to-video/api"],
  • Network accessline 283
    "luma/agent/ray/v3.2/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/luma/agent/ray/v3.2/image-to-video/api"],           "video": {"i2v": true, "last_frame": true, "durations": {"val
  • Network accessline 284
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/luma/agent/ray/v3.2/image-to-video/api"],
  • Network accessline 292
    },         "minimax/h3/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/minimax/h3/image-to-video/api"],
  • Network accessline 293
    "minimax/h3/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/minimax/h3/image-to-video/api"],           "video": {"i2v": true, "last_frame": true, "durations": {"min": 5, "max": 15, "
  • Network accessline 294
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/minimax/h3/image-to-video/api"],
  • Network accessline 301
    },         "alibaba/wan-3.0/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/alibaba/wan-3.0/image-to-video/api"],
  • Network accessline 302
    "alibaba/wan-3.0/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/alibaba/wan-3.0/image-to-video/api"],           "video": {"i2v": true, "last_frame": true, "durations": {"min": 2, "m
  • Network accessline 303
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/alibaba/wan-3.0/image-to-video/api"],
  • Network accessline 311
    },         "fal-ai/vidu/q3/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/vidu/q3/image-to-video/api"],
  • Network accessline 312
    "fal-ai/vidu/q3/image-to-video": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/vidu/q3/image-to-video/api"],           "video": {"i2v": true, "last_frame": true, "durations": {"min": 1, "max
  • Network accessline 313
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/vidu/q3/image-to-video/api"],
  • Network accessline 320
    },         "lightricks/ltx-2.5/image-to-video/pro": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/lightricks/ltx-2.5/image-to-video/pro/api"],
  • Network accessline 321
    "lightricks/ltx-2.5/image-to-video/pro": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/lightricks/ltx-2.5/image-to-video/pro/api"],           "video": {"i2v": true, "last_frame": true, "durations":
  • Network accessline 322
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/lightricks/ltx-2.5/image-to-video/pro/api"],
  • Network accessline 330
    },         "lightricks/ltx-2.5/image-to-video/fast": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/lightricks/ltx-2.5/image-to-video/fast/api"],
  • Network accessline 331
    "lightricks/ltx-2.5/image-to-video/fast": {           "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/lightricks/ltx-2.5/image-to-video/fast/api"],           "video": {"i2v": true, "last_frame": true, "durations
  • Network accessline 332
    "kind": "video", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/lightricks/ltx-2.5/image-to-video/fast/api"],
  • Network accessline 340
    },         "fal-ai/nano-banana-2/edit": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/nano-banana-2/edit/api"],
  • Network accessline 341
    "fal-ai/nano-banana-2/edit": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/nano-banana-2/edit/api"],           "image": {"generate": false, "edit": "instruct", "refs_max": 14, "transparent_b
  • Network accessline 342
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/nano-banana-2/edit/api"],
  • Network accessline 350
    },         "fal-ai/nano-banana-pro/edit": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/nano-banana-pro/edit/api"],
  • Network accessline 351
    "fal-ai/nano-banana-pro/edit": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/nano-banana-pro/edit/api"],           "image": {"generate": false, "edit": "instruct", "refs_max": 14, "transpare
  • Network accessline 352
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/fal-ai/nano-banana-pro/edit/api"],
  • Network accessline 360
    },         "bytedance/seedream/v5/pro/edit": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/bytedance/seedream/v5/pro/edit/api"],
  • Network accessline 361
    "bytedance/seedream/v5/pro/edit": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/bytedance/seedream/v5/pro/edit/api"],           "image": {"generate": false, "edit": "instruct", "refs_max": 10, "tra
  • Network accessline 362
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/bytedance/seedream/v5/pro/edit/api"],
  • Network accessline 369
    },         "openai/gpt-image-2/edit": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/openai/gpt-image-2/edit/api"],
  • Network accessline 370
    "openai/gpt-image-2/edit": {           "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/openai/gpt-image-2/edit/api"],           "image": {"generate": false, "edit": "mask", "refs_max": 16, "transparent_bg": "nat
  • Network accessline 371
    "kind": "image", "verifiedAt": "2026-10-06", "docs": ["https://fal.ai/models/openai/gpt-image-2/edit/api"],

skills/generate2dmedia/references/cli-routes.md

  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 148
    [Credential-related source omitted]

skills/generate2dmedia/references/prices.json

  • Network accessline 5
    "notes": "List prices transcribed from the vendors' pricing pages on 2026-10-06 (provider-survey.md); no live call was made. Excludes tax, rejected or regenerated attempts and subscription quotas. A request whose provider, model, unit and q
  • Network accessline 6
    "rows": [     {"provider": "openai", "model": "gpt-image-2", "unit": "output_image", "size": "1024x1024", "quality": "low", "usd": 0.006, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06"
  • Network accessline 7
    {"provider": "openai", "model": "gpt-image-2", "unit": "output_image", "size": "1024x1024", "quality": "low", "usd": 0.006, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06"},
  • Network accessline 8
    {"provider": "openai", "model": "gpt-image-2", "unit": "output_image", "size": "1024x1024", "quality": "medium", "usd": 0.053, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06"},
  • Network accessline 9
    {"provider": "openai", "model": "gpt-image-2", "unit": "output_image", "size": "1024x1024", "quality": "high", "usd": 0.211, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06"},
  • Network accessline 10
    {"provider": "openai", "model": "gpt-image-2", "unit": "output_image", "size": "1536x1024", "quality": "low", "usd": 0.005, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06"},
  • Network accessline 11
    {"provider": "openai", "model": "gpt-image-2", "unit": "output_image", "size": "1536x1024", "quality": "medium", "usd": 0.041, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06"},
  • Network accessline 12
    {"provider": "openai", "model": "gpt-image-2", "unit": "output_image", "size": "1536x1024", "quality": "high", "usd": 0.165, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06"},
  • Network accessline 13
    {"provider": "openai", "model": "gpt-image-2", "unit": "output_image", "size": "1024x1536", "quality": "low", "usd": 0.005, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06"},
  • Network accessline 14
    {"provider": "openai", "model": "gpt-image-2", "unit": "output_image", "size": "1024x1536", "quality": "medium", "usd": 0.041, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06"},
  • Network accessline 15
    {"provider": "openai", "model": "gpt-image-2", "unit": "output_image", "size": "1024x1536", "quality": "high", "usd": 0.165, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06"},
  • Network accessline 16
    {"provider": "openai", "model": "gpt-image-2.5-sunburst", "unit": "output_image", "size": "1024x1024", "quality": "low", "usd": 0.0059, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06", 
  • Network accessline 17
    {"provider": "openai", "model": "gpt-image-2.5-sunburst", "unit": "output_image", "size": "1024x1024", "quality": "medium", "usd": 0.0132, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06
  • Network accessline 18
    {"provider": "openai", "model": "gpt-image-2.5-sunburst", "unit": "output_image", "size": "1024x1024", "quality": "high", "usd": 0.0527, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06",
  • Network accessline 19
    {"provider": "openai", "model": "gpt-image-2.5-sunburst", "unit": "output_image", "size": "1024x1024", "quality": "xhigh", "usd": 0.0937, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06"
  • Network accessline 20
    {"provider": "openai", "model": "gpt-image-2.5-sunburst", "unit": "output_image", "size": "1024x1024", "quality": "max", "usd": 0.2107, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06", 
  • Network accessline 21
    {"provider": "openai", "model": "gpt-image-2.5-flare", "unit": "output_image", "size": "1024x1024", "quality": "low", "usd": 0.0059, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06", "no
  • Network accessline 22
    {"provider": "openai", "model": "gpt-image-2.5-flare", "unit": "output_image", "size": "1024x1024", "quality": "medium", "usd": 0.0132, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06", 
  • Network accessline 23
    {"provider": "openai", "model": "gpt-image-2.5-flare", "unit": "output_image", "size": "1024x1024", "quality": "high", "usd": 0.0527, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06", "n
  • Network accessline 24
    {"provider": "openai", "model": "gpt-image-2.5-flare", "unit": "output_image", "size": "1024x1024", "quality": "xhigh", "usd": 0.0937, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06", "
  • Network accessline 25
    {"provider": "openai", "model": "gpt-image-2.5-flare", "unit": "output_image", "size": "1024x1024", "quality": "max", "usd": 0.2107, "source": "https://developers.openai.com/api/docs/guides/image-generation", "verifiedAt": "2026-10-06", "no
  • Network accessline 26
    {"provider": "gemini", "model": "gemini-3.1-flash-image", "unit": "output_image", "resolution": "512", "usd": 0.045, "source": "https://ai.google.dev/gemini-api/docs/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 27
    {"provider": "gemini", "model": "gemini-3.1-flash-image", "unit": "output_image", "resolution": "1K", "usd": 0.067, "source": "https://ai.google.dev/gemini-api/docs/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 28
    {"provider": "gemini", "model": "gemini-3.1-flash-image", "unit": "output_image", "resolution": "2K", "usd": 0.101, "source": "https://ai.google.dev/gemini-api/docs/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 29
    {"provider": "gemini", "model": "gemini-3.1-flash-image", "unit": "output_image", "resolution": "4K", "usd": 0.151, "source": "https://ai.google.dev/gemini-api/docs/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 30
    {"provider": "gemini", "model": "gemini-3-pro-image", "unit": "output_image", "resolution": "1K", "usd": 0.134, "source": "https://ai.google.dev/gemini-api/docs/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 31
    {"provider": "gemini", "model": "gemini-3-pro-image", "unit": "output_image", "resolution": "2K", "usd": 0.134, "source": "https://ai.google.dev/gemini-api/docs/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 32
    {"provider": "gemini", "model": "gemini-3-pro-image", "unit": "output_image", "resolution": "4K", "usd": 0.24, "source": "https://ai.google.dev/gemini-api/docs/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 33
    {"provider": "gemini", "model": "gemini-3-pro-image", "unit": "input_image", "usd": 0.0011, "source": "https://ai.google.dev/gemini-api/docs/pricing", "verifiedAt": "2026-10-06", "note": "560 input tokens per image at $2 per 1M"},
  • Network accessline 34
    {"provider": "gemini", "model": "gemini-3.1-flash-lite-image", "unit": "output_image", "resolution": "1K", "usd": 0.0336, "source": "https://ai.google.dev/gemini-api/docs/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 35
    {"provider": "xai", "model": "grok-imagine-image-2.0", "unit": "output_image", "resolution": "1k", "quality": "low", "usd": 0.04, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 36
    {"provider": "xai", "model": "grok-imagine-image-2.0", "unit": "output_image", "resolution": "1.5k", "quality": "low", "usd": 0.05, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 37
    {"provider": "xai", "model": "grok-imagine-image-2.0", "unit": "output_image", "resolution": "2k", "quality": "low", "usd": 0.06, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 38
    {"provider": "xai", "model": "grok-imagine-image-2.0", "unit": "output_image", "resolution": "1k", "quality": "medium", "usd": 0.06, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 39
    {"provider": "xai", "model": "grok-imagine-image-2.0", "unit": "output_image", "resolution": "1.5k", "quality": "medium", "usd": 0.07, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 40
    {"provider": "xai", "model": "grok-imagine-image-2.0", "unit": "output_image", "resolution": "2k", "quality": "medium", "usd": 0.08, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 41
    {"provider": "xai", "model": "grok-imagine-image-2.0", "unit": "input_image", "usd": 0.01, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 42
    {"provider": "xai", "model": "grok-imagine-image", "unit": "output_image", "resolution": "1k", "usd": 0.02, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 43
    {"provider": "xai", "model": "grok-imagine-image", "unit": "output_image", "resolution": "2k", "usd": 0.02, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 44
    {"provider": "xai", "model": "grok-imagine-image", "unit": "input_image", "usd": 0.002, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 45
    {"provider": "xai", "model": "grok-imagine-video-1.5", "unit": "output_second", "resolution": "480p", "usd": 0.08, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 46
    {"provider": "xai", "model": "grok-imagine-video-1.5", "unit": "output_second", "resolution": "720p", "usd": 0.14, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 47
    {"provider": "xai", "model": "grok-imagine-video-1.5", "unit": "output_second", "resolution": "1080p", "usd": 0.25, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 48
    {"provider": "xai", "model": "grok-imagine-video-1.5", "unit": "input_image", "usd": 0.01, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 49
    {"provider": "xai", "model": "grok-imagine-video-1.5-lite", "unit": "output_second", "resolution": "480p", "usd": 0.02, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 50
    {"provider": "xai", "model": "grok-imagine-video-1.5-lite", "unit": "output_second", "resolution": "720p", "usd": 0.03, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 51
    {"provider": "xai", "model": "grok-imagine-video-1.5-lite", "unit": "output_second", "resolution": "1080p", "usd": 0.14, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 52
    {"provider": "xai", "model": "grok-imagine-video-1.5-lite", "unit": "input_image", "usd": 0.01, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 53
    {"provider": "xai", "model": "grok-imagine-video", "unit": "output_second", "resolution": "480p", "usd": 0.05, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 54
    {"provider": "xai", "model": "grok-imagine-video", "unit": "output_second", "resolution": "720p", "usd": 0.07, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 55
    {"provider": "xai", "model": "grok-imagine-video", "unit": "input_image", "usd": 0.002, "source": "https://docs.x.ai/developers/pricing", "verifiedAt": "2026-10-06"},
  • Network accessline 56
    {"provider": "byteplus", "model": "dola-seedream-5-0-pro-260628", "unit": "output_image", "resolution": "up-to-2.61MP", "usd": 0.045, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "up to
  • Network accessline 57
    {"provider": "byteplus", "model": "dola-seedream-5-0-pro-260628", "unit": "output_image", "resolution": "above-2.61MP", "usd": 0.09, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "above 
  • Network accessline 58
    {"provider": "byteplus", "model": "dola-seedream-5-0-pro-260628", "unit": "input_image", "usd": 0.003, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "the first reference image is free"},
  • Network accessline 59
    {"provider": "byteplus", "model": "dola-seedream-5-0-flash-260915", "unit": "output_image", "usd": 0.018, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "reference images are free"},
  • Network accessline 60
    {"provider": "byteplus", "model": "dreamina-seedance-2-0-260128", "unit": "output_second", "resolution": "480p", "usd": 0.07, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "list price pe
  • Network accessline 61
    {"provider": "byteplus", "model": "dreamina-seedance-2-0-260128", "unit": "output_second", "resolution": "720p", "usd": 0.15, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "list price pe
  • Network accessline 62
    {"provider": "byteplus", "model": "dreamina-seedance-2-0-260128", "unit": "output_second", "resolution": "1080p", "usd": 0.37, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "list price p
  • Network accessline 63
    {"provider": "byteplus", "model": "dreamina-seedance-2-0-mini-260615", "unit": "output_second", "resolution": "480p", "usd": 0.04, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "list pri
  • Network accessline 64
    {"provider": "byteplus", "model": "dreamina-seedance-2-0-mini-260615", "unit": "output_second", "resolution": "720p", "usd": 0.08, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "list pri
  • Network accessline 65
    {"provider": "byteplus", "model": "dreamina-seedance-2-5-260628", "unit": "output_second", "resolution": "480p", "usd": 0.103, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "list price p
  • Network accessline 66
    {"provider": "byteplus", "model": "dreamina-seedance-2-5-260628", "unit": "output_second", "resolution": "720p", "usd": 0.231, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "list price p
  • Network accessline 67
    {"provider": "byteplus", "model": "dreamina-seedance-2-5-260628", "unit": "output_second", "resolution": "1080p", "usd": 0.569, "source": "https://docs.byteplus.com/en/docs/ModelArk/1544106", "verifiedAt": "2026-10-06", "note": "list price 
  • Network accessline 68
    {"provider": "fal", "model": "fal-ai/veo3.1/first-last-frame-to-video", "unit": "output_second", "resolution": "720p", "usd": 0.2, "source": "https://fal.ai/models/fal-ai/veo3.1/first-last-frame-to-video", "verifiedAt": "2026-10-06"},
  • Network accessline 69
    {"provider": "fal", "model": "fal-ai/veo3.1/first-last-frame-to-video", "unit": "output_second", "resolution": "1080p", "usd": 0.2, "source": "https://fal.ai/models/fal-ai/veo3.1/first-last-frame-to-video", "verifiedAt": "2026-10-06"},
  • Network accessline 70
    {"provider": "fal", "model": "fal-ai/veo3.1/fast/first-last-frame-to-video", "unit": "output_second", "resolution": "720p", "usd": 0.1, "source": "https://fal.ai/models/fal-ai/veo3.1/fast/first-last-frame-to-video", "verifiedAt": "2026-10-0
  • Network accessline 71
    {"provider": "fal", "model": "fal-ai/veo3.1/fast/first-last-frame-to-video", "unit": "output_second", "resolution": "1080p", "usd": 0.1, "source": "https://fal.ai/models/fal-ai/veo3.1/fast/first-last-frame-to-video", "verifiedAt": "2026-10-
  • Network accessline 72
    {"provider": "fal", "model": "luma/agent/ray/v3.2/image-to-video", "unit": "output_second", "resolution": "540p", "usd": 0.03, "source": "https://fal.ai/models/luma/agent/ray/v3.2/image-to-video", "verifiedAt": "2026-10-06", "note": "per 5 
  • Network accessline 73
    {"provider": "fal", "model": "luma/agent/ray/v3.2/image-to-video", "unit": "output_second", "resolution": "720p", "usd": 0.06, "source": "https://fal.ai/models/luma/agent/ray/v3.2/image-to-video", "verifiedAt": "2026-10-06", "note": "per 5 
  • Network accessline 74
    {"provider": "fal", "model": "luma/agent/ray/v3.2/image-to-video", "unit": "output_second", "resolution": "1080p", "usd": 0.24, "source": "https://fal.ai/models/luma/agent/ray/v3.2/image-to-video", "verifiedAt": "2026-10-06", "note": "per 5
  • Network accessline 75
    {"provider": "fal", "model": "minimax/h3/image-to-video", "unit": "output_second", "resolution": "480P", "usd": 0.05, "source": "https://fal.ai/models/minimax/h3/image-to-video", "verifiedAt": "2026-10-06"},
  • Network accessline 76
    {"provider": "fal", "model": "minimax/h3/image-to-video", "unit": "output_second", "resolution": "768P", "usd": 0.06, "source": "https://fal.ai/models/minimax/h3/image-to-video", "verifiedAt": "2026-10-06"},
  • Network accessline 77
    {"provider": "fal", "model": "minimax/h3/image-to-video", "unit": "output_second", "resolution": "2K", "usd": 0.13, "source": "https://fal.ai/models/minimax/h3/image-to-video", "verifiedAt": "2026-10-06"},
  • Network accessline 78
    {"provider": "fal", "model": "alibaba/wan-3.0/image-to-video", "unit": "output_second", "resolution": "480p", "usd": 0.05, "source": "https://fal.ai/models/alibaba/wan-3.0/image-to-video", "verifiedAt": "2026-10-06"},
  • Network accessline 79
    {"provider": "fal", "model": "alibaba/wan-3.0/image-to-video", "unit": "output_second", "resolution": "720p", "usd": 0.1, "source": "https://fal.ai/models/alibaba/wan-3.0/image-to-video", "verifiedAt": "2026-10-06"},
  • Network accessline 80
    {"provider": "fal", "model": "alibaba/wan-3.0/image-to-video", "unit": "output_second", "resolution": "1080p", "usd": 0.2, "source": "https://fal.ai/models/alibaba/wan-3.0/image-to-video", "verifiedAt": "2026-10-06"},
  • Network accessline 81
    {"provider": "fal", "model": "fal-ai/vidu/q3/image-to-video", "unit": "output_second", "resolution": "540p", "usd": 0.07, "source": "https://fal.ai/models/fal-ai/vidu/q3/image-to-video", "verifiedAt": "2026-10-06"},
  • Network accessline 82
    {"provider": "fal", "model": "fal-ai/vidu/q3/image-to-video", "unit": "output_second", "resolution": "720p", "usd": 0.154, "source": "https://fal.ai/models/fal-ai/vidu/q3/image-to-video", "verifiedAt": "2026-10-06"},
  • Network accessline 83
    {"provider": "fal", "model": "fal-ai/vidu/q3/image-to-video", "unit": "output_second", "resolution": "1080p", "usd": 0.154, "source": "https://fal.ai/models/fal-ai/vidu/q3/image-to-video", "verifiedAt": "2026-10-06"},
  • Network accessline 84
    {"provider": "fal", "model": "lightricks/ltx-2.5/image-to-video/pro", "unit": "output_second", "resolution": "720p", "usd": 0.12, "source": "https://fal.ai/models/lightricks/ltx-2.5/image-to-video/pro", "verifiedAt": "2026-10-06"},
  • Network accessline 85
    {"provider": "fal", "model": "lightricks/ltx-2.5/image-to-video/pro", "unit": "output_second", "resolution": "1080p", "usd": 0.17, "source": "https://fal.ai/models/lightricks/ltx-2.5/image-to-video/pro", "verifiedAt": "2026-10-06"},
  • Network accessline 86
    {"provider": "fal", "model": "lightricks/ltx-2.5/image-to-video/fast", "unit": "output_second", "resolution": "720p", "usd": 0.09, "source": "https://fal.ai/models/lightricks/ltx-2.5/image-to-video/fast", "verifiedAt": "2026-10-06"},
  • Network accessline 87
    {"provider": "fal", "model": "lightricks/ltx-2.5/image-to-video/fast", "unit": "output_second", "resolution": "1080p", "usd": 0.13, "source": "https://fal.ai/models/lightricks/ltx-2.5/image-to-video/fast", "verifiedAt": "2026-10-06"},
  • Network accessline 88
    {"provider": "fal", "model": "fal-ai/kling-video/v3/pro/image-to-video", "unit": "output_second", "usd": 0.112, "source": "https://fal.ai/models/fal-ai/kling-video/v3/pro/image-to-video", "verifiedAt": "2026-10-06", "note": "audio off"},
  • Network accessline 89
    {"provider": "fal", "model": "fal-ai/kling-video/v3/standard/image-to-video", "unit": "output_second", "usd": 0.084, "source": "https://fal.ai/models/fal-ai/kling-video/v3/standard/image-to-video", "verifiedAt": "2026-10-06", "note": "audio
  • Network accessline 90
    {"provider": "fal", "model": "fal-ai/nano-banana-2/edit", "unit": "output_image", "resolution": "0.5K", "usd": 0.06, "source": "https://fal.ai/models/fal-ai/nano-banana-2/edit", "verifiedAt": "2026-10-06"},
  • Network accessline 91
    {"provider": "fal", "model": "fal-ai/nano-banana-2/edit", "unit": "output_image", "resolution": "1K", "usd": 0.08, "source": "https://fal.ai/models/fal-ai/nano-banana-2/edit", "verifiedAt": "2026-10-06"},
  • Network accessline 92
    {"provider": "fal", "model": "fal-ai/nano-banana-2/edit", "unit": "output_image", "resolution": "2K", "usd": 0.12, "source": "https://fal.ai/models/fal-ai/nano-banana-2/edit", "verifiedAt": "2026-10-06"},
  • Network accessline 93
    {"provider": "fal", "model": "fal-ai/nano-banana-2/edit", "unit": "output_image", "resolution": "4K", "usd": 0.16, "source": "https://fal.ai/models/fal-ai/nano-banana-2/edit", "verifiedAt": "2026-10-06"},
  • Network accessline 94
    {"provider": "fal", "model": "fal-ai/nano-banana-pro/edit", "unit": "output_image", "resolution": "1K", "usd": 0.15, "source": "https://fal.ai/models/fal-ai/nano-banana-pro/edit", "verifiedAt": "2026-10-06"},
  • Network accessline 95
    {"provider": "fal", "model": "fal-ai/nano-banana-pro/edit", "unit": "output_image", "resolution": "2K", "usd": 0.15, "source": "https://fal.ai/models/fal-ai/nano-banana-pro/edit", "verifiedAt": "2026-10-06"},
  • Network accessline 96
    {"provider": "fal", "model": "fal-ai/nano-banana-pro/edit", "unit": "output_image", "resolution": "4K", "usd": 0.3, "source": "https://fal.ai/models/fal-ai/nano-banana-pro/edit", "verifiedAt": "2026-10-06"},
  • Network accessline 97
    {"provider": "fal", "model": "bytedance/seedream/v5/pro/edit", "unit": "output_image", "resolution": "up-to-1536", "usd": 0.0675, "source": "https://fal.ai/models/bytedance/seedream/v5/pro/edit", "verifiedAt": "2026-10-06", "note": "up to 1
  • Network accessline 98
    {"provider": "fal", "model": "bytedance/seedream/v5/pro/edit", "unit": "output_image", "resolution": "up-to-2048", "usd": 0.135, "source": "https://fal.ai/models/bytedance/seedream/v5/pro/edit", "verifiedAt": "2026-10-06", "note": "up to 20
  • Network accessline 99
    {"provider": "fal", "model": "bytedance/seedream/v5/pro/edit", "unit": "input_image", "usd": 0.0045, "source": "https://fal.ai/models/bytedance/seedream/v5/pro/edit", "verifiedAt": "2026-10-06", "note": "each reference after the first"},
  • Network accessline 100
    {"provider": "fal", "model": "openai/gpt-image-2/edit", "unit": "output_image", "size": "1024x1024", "quality": "low", "usd": 0.015, "source": "https://fal.ai/models/openai/gpt-image-2/edit", "verifiedAt": "2026-10-06"},
  • Network accessline 101
    {"provider": "fal", "model": "openai/gpt-image-2/edit", "unit": "output_image", "size": "1024x1024", "quality": "medium", "usd": 0.061, "source": "https://fal.ai/models/openai/gpt-image-2/edit", "verifiedAt": "2026-10-06"},
  • Network accessline 102
    {"provider": "fal", "model": "openai/gpt-image-2/edit", "unit": "output_image", "size": "1024x1024", "quality": "high", "usd": 0.219, "source": "https://fal.ai/models/openai/gpt-image-2/edit", "verifiedAt": "2026-10-06"}

skills/generate2dmedia/references/provider-survey.md

  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Network accessline 72
    recorded as the actual cost. Image edits are JSON, never multipart. The zero-data-retention   upload URL goes in `output.upload_url`. - **BytePlus ModelArk**: base `https://ark.ap-southeast.bytepluses.com/api/v3`. Seedream watermarks
  • Network accessline 73
    upload URL goes in `output.upload_url`. - **BytePlus ModelArk**: base `https://ark.ap-southeast.bytepluses.com/api/v3`. Seedream watermarks   by default (ASF sends `watermark: false`), answers JPEG unless asked (`output_format: png`) and
  • Network accessline 74
    - **BytePlus ModelArk**: base `https://ark.ap-southeast.bytepluses.com/api/v3`. Seedream watermarks
  • Network accessline 80
    [Credential-related source omitted]
  • Network accessline 81
    [Credential-related source omitted]
  • Network accessline 82
    [Credential-related source omitted]
  • Access to secretsline 82
    [Credential-related source omitted]
  • Network accessline 189
    - OpenAI: [Terms of Use](https://openai.com/policies/terms-of-use/),
  • Network accessline 190
    [Services Agreement](https://openai.com/policies/services-agreement/),
  • Network accessline 191
    [Usage Policies](https://openai.com/policies/usage-policies/).
  • Network accessline 192
    - xAI: [Terms of Service](https://x.ai/legal/terms-of-service),
  • Network accessline 193
    [Enterprise Terms](https://x.ai/legal/terms-of-service-enterprise),
  • Network accessline 194
    [Acceptable Use Policy](https://x.ai/legal/acceptable-use-policy).
  • Network accessline 208
    OpenAI [image guide](https://developers.openai.com/api/docs/guides/image-generation),
  • Network accessline 209
    [Images reference](https://developers.openai.com/api/reference/resources/images),
  • Network accessline 210
    [deprecations](https://developers.openai.com/api/docs/deprecations);
  • Network accessline 211
    Google [image generation](https://ai.google.dev/gemini-api/docs/generate-content/image-generation),
  • Network accessline 212
    [generateContent](https://ai.google.dev/api/generate-content),
  • Network accessline 213
    [API keys](https://ai.google.dev/gemini-api/docs/api-key),
  • Network accessline 214
    [errors](https://ai.google.dev/gemini-api/docs/generate-content/api-errors),
  • Network accessline 215
    [pricing](https://ai.google.dev/gemini-api/docs/pricing),
  • Network accessline 216
    [deprecations](https://ai.google.dev/gemini-api/docs/deprecations);
  • Network accessline 217
    xAI [video generation](https://docs.x.ai/developers/model-capabilities/video/generation),
  • Network accessline 218
    [reference to video](https://docs.x.ai/developers/model-capabilities/video/reference-to-video),
  • Network accessline 219
    [multi-image editing](https://docs.x.ai/developers/model-capabilities/images/multi-image-editing),
  • Network accessline 220
    [pricing](https://docs.x.ai/developers/pricing);
  • Network accessline 221
    BytePlus [image API](https://docs.byteplus.com/en/docs/ModelArk/1541523),
  • Network accessline 222
    [video task](https://docs.byteplus.com/en/docs/ModelArk/1520757),
  • Network accessline 223
    [query task](https://docs.byteplus.com/en/docs/ModelArk/1521309),
  • Network accessline 224
    [error codes](https://docs.byteplus.com/en/docs/ModelArk/1299023),
  • Network accessline 225
    [pricing](https://docs.byteplus.com/en/docs/ModelArk/1544106);
  • Network accessline 226
    fal.ai [queue](https://fal.ai/docs/model-apis/model-endpoints/queue),
  • Network accessline 227
    [errors](https://fal.ai/docs/documentation/model-apis/errors.md),
  • Network accessline 228
    [media expiration](https://fal.ai/docs/documentation/model-apis/media-expiration),
  • Network accessline 229
    [fal_client uploads](https://github.com/fal-ai/fal/blob/main/projects/fal_client/src/fal_client/client.py)
  • Network accessline 230
    and each model's page `https://fal.ai/models/<endpoint-id>`.

skills/generate2dmedia/references/route-media.md

  • Access to secretsline 116
    [Credential-related source omitted]
  • Access to secretsline 116
    [Credential-related source omitted]
  • Access to secretsline 116
    [Credential-related source omitted]
  • Access to secretsline 116
    [Credential-related source omitted]
  • Access to secretsline 117
    [Credential-related source omitted]
  • Access to secretsline 117
    [Credential-related source omitted]
  • Access to secretsline 117
    [Credential-related source omitted]
  • Access to secretsline 117
    [Credential-related source omitted]
  • Access to secretsline 118
    [Credential-related source omitted]
  • Access to secretsline 118
    [Credential-related source omitted]
  • Access to secretsline 118
    [Credential-related source omitted]
  • Access to secretsline 118
    [Credential-related source omitted]
  • Access to secretsline 119
    [Credential-related source omitted]
  • Access to secretsline 119
    [Credential-related source omitted]
  • Access to secretsline 119
    [Credential-related source omitted]
  • Access to secretsline 119
    [Credential-related source omitted]
  • Access to secretsline 132
    [Credential-related source omitted]
  • Access to secretsline 132
    [Credential-related source omitted]
  • Access to secretsline 132
    [Credential-related source omitted]
  • Access to secretsline 132
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Access to secretsline 135
    [Credential-related source omitted]
  • Access to secretsline 135
    [Credential-related source omitted]
  • Access to secretsline 135
    [Credential-related source omitted]
  • Access to secretsline 135
    [Credential-related source omitted]

skills/generate2dmedia/references/schemas/common.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/common.schema.json",

skills/generate2dmedia/references/schemas/media.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/media.schema.json",   "title": "generate2dmedia contracts",   "description": "Frozen contracts, version 1, for paid or quota-consuming media requests:

skills/generate2dmedia/scripts/cli_media.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Dangerous shell operationline 88
    MAX_IMAGE_REFERENCES = 8          # Codex attaches them to codex exec (--image); 64 MiB together at most
  • Dangerous shell operationline 88
    MAX_IMAGE_REFERENCES = 8          # Codex attaches them to codex exec (--image); 64 MiB together at most
  • Dangerous shell operationline 88
    MAX_IMAGE_REFERENCES = 8          # Codex attaches them to codex exec (--image); 64 MiB together at most
  • Dangerous shell operationline 130
    # --- Codex: one image through codex exec (recipe codex-exec-imagegen/1; verified by the owner on
  • Dangerous shell operationline 130
    # --- Codex: one image through codex exec (recipe codex-exec-imagegen/1; verified by the owner on
  • Dangerous shell operationline 130
    # --- Codex: one image through codex exec (recipe codex-exec-imagegen/1; verified by the owner on
  • Access to secretsline 241
    [Credential-related source omitted]
  • Access to secretsline 241
    [Credential-related source omitted]
  • Access to secretsline 241
    [Credential-related source omitted]
  • Possible obfuscationline 1802
    data = base64.b64decode(chosen, validate=True)
  • Possible obfuscationline 1802
    data = base64.b64decode(chosen, validate=True)
  • Possible obfuscationline 1802
    data = base64.b64decode(chosen, validate=True)

skills/generate2dmedia/scripts/forge_doctor.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Access to secretsline 101
    [Credential-related source omitted]
  • Access to secretsline 101
    [Credential-related source omitted]
  • Access to secretsline 101
    [Credential-related source omitted]
  • Access to secretsline 101
    [Credential-related source omitted]
  • Access to secretsline 105
    [Credential-related source omitted]
  • Access to secretsline 105
    [Credential-related source omitted]
  • Access to secretsline 105
    [Credential-related source omitted]
  • Access to secretsline 105
    [Credential-related source omitted]
  • Possible obfuscationline 120
    NATIVE_MAGIC = (b"MZ", b"\x7fELF", b"\xfe\xed\xfa\xce", b"\xfe\xed\xfa\xcf", b"\xce\xfa\xed\xfe",
  • Possible obfuscationline 120
    NATIVE_MAGIC = (b"MZ", b"\x7fELF", b"\xfe\xed\xfa\xce", b"\xfe\xed\xfa\xcf", b"\xce\xfa\xed\xfe",
  • Possible obfuscationline 120
    NATIVE_MAGIC = (b"MZ", b"\x7fELF", b"\xfe\xed\xfa\xce", b"\xfe\xed\xfa\xcf", b"\xce\xfa\xed\xfe",
  • Possible obfuscationline 120
    NATIVE_MAGIC = (b"MZ", b"\x7fELF", b"\xfe\xed\xfa\xce", b"\xfe\xed\xfa\xcf", b"\xce\xfa\xed\xfe",
  • Possible obfuscationline 121
    b"\xcf\xfa\xed\xfe", b"\xca\xfe\xba\xbe")
  • Possible obfuscationline 121
    b"\xcf\xfa\xed\xfe", b"\xca\xfe\xba\xbe")
  • Possible obfuscationline 121
    b"\xcf\xfa\xed\xfe", b"\xca\xfe\xba\xbe")
  • Possible obfuscationline 121
    b"\xcf\xfa\xed\xfe", b"\xca\xfe\xba\xbe")
  • Access to secretsline 293
    [Credential-related source omitted]
  • Access to secretsline 293
    [Credential-related source omitted]
  • Access to secretsline 293
    [Credential-related source omitted]
  • Access to secretsline 293
    [Credential-related source omitted]
  • Access to secretsline 298
    [Credential-related source omitted]
  • Access to secretsline 298
    [Credential-related source omitted]
  • Access to secretsline 298
    [Credential-related source omitted]
  • Access to secretsline 298
    [Credential-related source omitted]
  • Access to secretsline 306
    [Credential-related source omitted]
  • Access to secretsline 306
    [Credential-related source omitted]
  • Access to secretsline 306
    [Credential-related source omitted]
  • Access to secretsline 306
    [Credential-related source omitted]
  • Access to secretsline 329
    [Credential-related source omitted]
  • Access to secretsline 329
    [Credential-related source omitted]
  • Access to secretsline 329
    [Credential-related source omitted]
  • Access to secretsline 329
    [Credential-related source omitted]
  • Access to secretsline 346
    [Credential-related source omitted]
  • Access to secretsline 346
    [Credential-related source omitted]
  • Access to secretsline 346
    [Credential-related source omitted]
  • Access to secretsline 346
    [Credential-related source omitted]
  • Access to secretsline 383
    [Credential-related source omitted]
  • Access to secretsline 383
    [Credential-related source omitted]
  • Access to secretsline 383
    [Credential-related source omitted]
  • Access to secretsline 383
    [Credential-related source omitted]
  • Access to secretsline 498
    [Credential-related source omitted]
  • Access to secretsline 498
    [Credential-related source omitted]
  • Access to secretsline 498
    [Credential-related source omitted]
  • Access to secretsline 498
    [Credential-related source omitted]
  • Access to secretsline 785
    [Credential-related source omitted]
  • Access to secretsline 785
    [Credential-related source omitted]
  • Access to secretsline 785
    [Credential-related source omitted]
  • Access to secretsline 785
    [Credential-related source omitted]

skills/generate2dmedia/scripts/generate_media.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 12
    [Credential-related source omitted]
  • Access to secretsline 13
    [Credential-related source omitted]
  • Network accessline 20
    from datetime import datetime, timezone import hashlib import http.client
  • Network accessline 21
    import hashlib import http.client import io
  • Network accessline 22
    import http.client
  • Network accessline 116
    class _TrackedHTTPSConnection(http.client.HTTPSConnection):
  • Network accessline 307
    try:         return exc.read(65536)     except (AttributeError, OSError, ValueError, http.client.HTTPException):
  • Network accessline 308
    return exc.read(65536)     except (AttributeError, OSError, ValueError, http.client.HTTPException):         return b""
  • Network accessline 309
    except (AttributeError, OSError, ValueError, http.client.HTTPException):
  • Network accessline 557
    raise MediaError(f"{text}; the request was not sent", code="not_sent" if paid else "network", sent=False) from None             raise _lost(paid, f"Connection failed while sending ({type(exc.reason).__name__})") from None         except (OS
  • Network accessline 558
    raise _lost(paid, f"Connection failed while sending ({type(exc.reason).__name__})") from None         except (OSError, http.client.HTTPException) as exc:             raise _lost(paid, f"No complete response after the request was sent ({type
  • Network accessline 559
    except (OSError, http.client.HTTPException) as exc:
  • Network accessline 590
    raise MediaError(f"Media download failed (HTTP {exc.code}); a known job can be resumed", code="network") \                 from None         except (OSError, http.client.HTTPException):
  • Network accessline 591
    from None         except (OSError, http.client.HTTPException):             raise MediaError("Media download failed; use resume for a known video request", code="network") from None
  • Network accessline 592
    except (OSError, http.client.HTTPException):             raise MediaError("Media download failed; use resume for a known video request", code="network") from None         if len(data) > DOWNLOAD_LIMIT:
  • Access to secretsline 945
    [Credential-related source omitted]
  • Access to secretsline 1103
    [Credential-related source omitted]
  • Access to secretsline 1105
    [Credential-related source omitted]

skills/generate2dmedia/scripts/media_config.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 10
    [Credential-related source omitted]
  • Access to secretsline 11
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 115
    [Credential-related source omitted]
  • Access to secretsline 132
    [Credential-related source omitted]
  • Access to secretsline 136
    [Credential-related source omitted]
  • Access to secretsline 191
    [Credential-related source omitted]

skills/generate2dmedia/scripts/media_ledger.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 113
    [Credential-related source omitted]
  • Access to secretsline 286
    [Credential-related source omitted]

skills/generate2dmedia/scripts/media_mp4.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dmedia/scripts/media_providers.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 7
    [Credential-related source omitted]
  • Access to secretsline 8
    [Credential-related source omitted]
  • Access to secretsline 9
    [Credential-related source omitted]
  • Possible obfuscationline 310
    return base64.b64decode(value, validate=True)
  • Network accessline 1041
    auth_scheme = "Key"     reserved = frozenset({"prompt"})     TOKEN_URL = "https://rest.fal.ai/storage/auth/token?storage_type=fal-cdn-v3"
  • Network accessline 1042
    reserved = frozenset({"prompt"})     TOKEN_URL = "https://rest.fal.ai/storage/auth/token?storage_type=fal-cdn-v3"     UPLOAD_URL = "https://v3.fal.media/files/upload"
  • Network accessline 1043
    TOKEN_URL = "https://rest.fal.ai/storage/auth/token?storage_type=fal-cdn-v3"
  • Network accessline 1044
    UPLOAD_URL = "https://v3.fal.media/files/upload"

skills/generate2dmedia/scripts/route_media.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 343
    [Credential-related source omitted]
  • Access to secretsline 343
    [Credential-related source omitted]
  • Access to secretsline 343
    [Credential-related source omitted]
  • Access to secretsline 343
    [Credential-related source omitted]
  • Access to secretsline 343
    [Credential-related source omitted]
  • Access to secretsline 760
    [Credential-related source omitted]
  • Access to secretsline 760
    [Credential-related source omitted]
  • Access to secretsline 760
    [Credential-related source omitted]
  • Access to secretsline 760
    [Credential-related source omitted]
  • Access to secretsline 760
    [Credential-related source omitted]

skills/generate2dsprite/SKILL.md

  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]

skills/generate2dsprite/references/runtime-integration.md

  • Network accessline 85
    - Aseprite separates sheet layout from animation frames and can export selected tags; a matrix is a storage layout. [Sprite sheets](https://www.aseprite.org/docs/sprite-sheet/)
  • Network accessline 86
    - Tags group frame ranges with a playback direction; frame durations are edited separately. [Tags](https://www.aseprite.org/docs/tags/), [Frame Duration](https://www.aseprite.org/docs/frame-duration/)
  • Network accessline 87
    - Slice pivots describe a base or central location; keep the coordinate conversion when using them as runtime origins. Lua `Frame.duration` is in seconds, while `.aseprite` frame headers store milliseconds. [Slices](https://www.aseprite.org
  • Network accessline 88
    - Godot `SpriteFrames` stores a per-animation speed and per-frame relative durations: seconds = `relative_duration / (animation_fps * abs(playing_speed))`. For an imported duration of `ms` at speed 1, use `relative_duration = ms * animation
  • Network accessline 89
    - Godot documents part-based cutout animation, pivots and draw order, and mixing it with frame animation. [Cutout animation](https://docs.godotengine.org/en/stable/tutorials/animation/cutout_animation.html)

skills/generate2dsprite/references/schemas/common.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/common.schema.json",

skills/generate2dsprite/references/schemas/sprite.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/sprite.schema.json",

skills/generate2dsprite/scripts/assemble_frames.py

  • Executable scriptline 1
    Executable file

skills/generate2dsprite/scripts/build_animation_clips.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

skills/generate2dsprite/scripts/export_engine.py

  • Executable scriptline 1
    Executable file

skills/generate2dsprite/scripts/forge_core.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 150
    [Credential-related source omitted]
  • Possible obfuscationline 327
    text = data[1:] if data.startswith("<U+FEFF>") else data
  • Access to secretsline 660
    [Credential-related source omitted]

skills/generate2dsprite/scripts/forge_matte.py

  • Executable scriptline 1
    Executable file

skills/generate2dsprite/scripts/forge_palette.py

  • Executable scriptline 1
    Executable file

skills/generate2dsprite/scripts/generate2dsprite.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dsprite/scripts/make_anchor_layout.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dsprite/scripts/make_layout_guide.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dsprite/scripts/master_still.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 810
    [Credential-related source omitted]
  • Access to secretsline 871
    [Credential-related source omitted]

skills/generate2dsprite/scripts/palette_tool.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dsprite/scripts/pixel_reduce.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dsprite/scripts/plan_guide.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 302
    guide = Image.new("RGB", (width, height), (255, 255, 255))     annotated = Image.new("RGB", (width, height), (255, 255, 255))     svg = [f'<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" '
  • Network accessline 303
    annotated = Image.new("RGB", (width, height), (255, 255, 255))     svg = [f'<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" '            f'viewBox="0 0 {width} {height}">', f'<rect width="{width}" height="{height}"
  • Network accessline 304
    svg = [f'<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" '

skills/generate2dsprite/scripts/scale_frames.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/generate2dsprite/scripts/sheet_qc.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/video2dsprite/SKILL.md

  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]

skills/video2dsprite/references/packed-alpha-runtime.js

  • Executable scriptline 1
    Executable file

skills/video2dsprite/references/runtime/forge-runtime.mjs

  • Executable scriptline 1
    Executable file

skills/video2dsprite/references/runtime/packed-alpha-webgl.mjs

  • Executable scriptline 1
    Executable file

skills/video2dsprite/references/schemas/common.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/common.schema.json",

skills/video2dsprite/references/schemas/video.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://raw.githubusercontent.com/0x0funky/agent-sprite-forge/main/shared/schemas/video.schema.json",

skills/video2dsprite/scripts/animation_review.py

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 146
    function tick(now){const dt=Math.max(0,now-last);last=now;if(loaded){const[a,b]=range();if(running){if(index<a||index>=b)index=a;elapsed+=dt*Number($('speed').value);const stepMs=1000/data.fps;const steps=Math.floor(elapsed/stepMs);elapsed-

skills/video2dsprite/scripts/colour_lock.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/video2dsprite/scripts/engine_export.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/video2dsprite/scripts/finish_frames.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/video2dsprite/scripts/forge_av.py

  • Executable scriptline 1
    Executable file

skills/video2dsprite/scripts/forge_core.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 150
    [Credential-related source omitted]
  • Possible obfuscationline 327
    text = data[1:] if data.startswith("<U+FEFF>") else data
  • Access to secretsline 660
    [Credential-related source omitted]

skills/video2dsprite/scripts/forge_matte.py

  • Executable scriptline 1
    Executable file

skills/video2dsprite/scripts/forge_palette.py

  • Executable scriptline 1
    Executable file

skills/video2dsprite/scripts/forge_schema.py

  • Executable scriptline 1
    Executable file

skills/video2dsprite/scripts/gait_loop.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 437
    [Credential-related source omitted]

skills/video2dsprite/scripts/prepare_i2v_input.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/video2dsprite/scripts/register_clip.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/video2dsprite/scripts/retime.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/video2dsprite/scripts/sprite_set.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 346
    [Credential-related source omitted]
  • Access to secretsline 1540
    [Credential-related source omitted]
  • Access to secretsline 1905
    [Credential-related source omitted]

skills/video2dsprite/scripts/validate_animation.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/video2dsprite/scripts/video2dsprite.py

  • Executable scriptline 1
    #!/usr/bin/env python3

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 6 facts
Signal confidence: 381 facts

and 331 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/codeart2d/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/codeart2d/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/codeart2d/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/codeart2d/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/codeart2d/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

0x0funky/agent-sprite-forge: #273 on hotskills, 5.3k stars

[![0x0funky/agent-sprite-forge on hotskills](https://hotskills.dev/badge/0x0funky-agent-sprite-forge.svg)](https://hotskills.dev/skill/0x0funky-agent-sprite-forge/)