# Generate2dmedia

The art-route layer of the Forge skills.

- Repository: https://github.com/0x0funky/agent-sprite-forge (4834 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-10-06
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add 0x0funky/agent-sprite-forge --skill generate2dmedia -g -a claude-code -y`
Codex: `npx skills add 0x0funky/agent-sprite-forge --skill generate2dmedia -g -a codex -y`
Cursor: `npx skills add 0x0funky/agent-sprite-forge --skill generate2dmedia -g -a cursor -y`
Gemini CLI: `npx skills add 0x0funky/agent-sprite-forge --skill generate2dmedia -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add 0x0funky/agent-sprite-forge`

## Description

The art-route layer of the Forge skills. route_media.py is the one command that generates an image or an image-to-video clip - through the paid API of any provider whose key is configured (OpenAI, Google Gemini, xAI, BytePlus ModelArk, fal.ai; the configured key is the owner's consent), else through the user's own signed-in Codex or Grok CLI - and prints one JSON line with the route, artifact, sha256 and cost estimate; with no route it answers no-route (codeart2d is then the last resort). Also the capability check (forge_doctor), API key configuration, the spend ledger, resume and Codex image adoption. Use when a Forge skill sends a generation here, for the capability check, or when the user asks about keys, routes or spend. Not for planning, processing or QA of sprites, video frames or maps (generate2dsprite, video2dsprite, generate2dmap) or for code-drawn art (codeart2d).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Generate 2D Media

The route layer. It makes raw media; the owning skill plans the asset before and checks it after.

## Use when

- Any Forge skill (or its pipeline script) needs a generated image, reference edit or image-to-video clip.
- Once per session, to see which routes work here (`forge_doctor.py`).
- The user asks to configure an API key, to use a particular route, or about spend.

## Do not use when

- Planning, keying, registering or packaging: [generate2dsprite](../generate2dsprite/SKILL.md), [video2dsprite](../video2dsprite/SKILL.md), [generate2dmap](../generate2dmap/SKILL.md).
- Code-drawn art the user asked for: [codeart2d](../codeart2d/SKILL.md).

## Route order (owner decision 2026-10-06)

1. **API**, every provider whose key is configured, in this order (the user's `providers.order` goes first). Images: OpenAI (`gpt-image-2.5-sunburst`), Google Gemini (`gemini-3.1-flash-image`; `--tier hero` takes `gemini-3-pro-image` for hero masters), xAI (`grok-imagine-image-2.0`), BytePlus ModelArk (Seedream 5.0), fal.ai (reference edits). Video: xAI (`grok-imagine-video-1.5`; `--tier draft` takes 1.5 Lite), BytePlus ModelArk (Seedance 2.0), fal.ai (Kling v3, Veo 3.1, Luma, MiniMax, Wan, Vidu, LTX). A configured key is the owner's consent: no per-call question.
2. **Local**: your own image tool if you have one (Codex `image_gen`, Grok's native tools), otherwise the user's signed-in CLI: Codex (local CLI) `image_gen` with references attached, then Grok (local CLI) one-shot image or edit; video Grok (local CLI) in ACP mode. An installed CLI is used as is; its first successful run records the VERIFIED proof.
3. **codeart2d**, only when the user explicitly asks for code-drawn art or `route_media.py` prints `no-route` (exit 3).

Always name the route that ran ("OpenAI API", "Google Gemini API", "xAI API", "BytePlus ModelArk API", "fal.ai API", "Codex (local CLI)", "Grok (local CLI)"). Details: [route-media.md](references/route-media.md).

The rest: https://github.com/0x0funky/agent-sprite-forge/blob/HEAD/skills/generate2dmedia/SKILL.md
