Files
Genarrative/.codex/skills/gpt-image-2-apimart/SKILL.md
高物 ae014ac881 Switch to VectorEngine gpt-image-2 and edits
Replace uses of the legacy `gpt-image-2-all` model with `gpt-image-2` and standardize image workflows: no-reference generation uses POST /v1/images/generations, any-reference flows use POST /v1/images/edits with multipart `image` parts. Update SKILLs, generation scripts, decision logs, and docs to reflect the contract change and edits-vs-generations guidance. Apply corresponding changes across backend (api-server match3d/puzzle modules, openai image adapter, mappers, telemetry, spacetime client/module), frontend components and services (Match3D, Puzzle, CreativeImageInputPanel, runtime shells), and add new spritesheet/parser files and tests. Also add media/logo.png. These changes align repository code and documentation with the VectorEngine image API contract and update generation/upload handling (green-screen -> alpha processing, spritesheet handling, and related tests).
2026-05-22 03:06:41 +08:00

3.5 KiB

name, description
name description
gpt-image-2-apimart Generate or inspect project image assets through this repository's VectorEngine gpt-image-2 workflow. Use when Codex needs to create puzzle template sample images, reproduce the server-rs gpt-image-2 request body, dry-run image prompts, batch-generate local project thumbnails, or debug VECTOR_ENGINE_BASE_URL / VECTOR_ENGINE_API_KEY image-generation configuration without exposing secrets. The directory name is historical.

gpt-image-2 VectorEngine

Use this skill for project-local image asset generation that must match the repository's server-rs VectorEngine gpt-image-2 path. The folder still contains apimart in its name for compatibility with existing local plugin references.

Workflow

  1. Read the local task and decide whether the image is project-bound.

  2. Prefer scripts/generate-template-samples.mjs for puzzle template thumbnails or small batches.

  3. Run dry-run first:

    node .codex/skills/gpt-image-2-apimart/scripts/generate-template-samples.mjs --dry-run
    
  4. If dry-run looks correct and the user asked for real assets, run live generation with a small limit:

    node .codex/skills/gpt-image-2-apimart/scripts/generate-template-samples.mjs --live --limit 6
    
  5. Save final project assets under public/ or another explicitly requested workspace path.

  6. Never print VECTOR_ENGINE_API_KEY. Report only whether configuration exists.

Request Contract

The repository image path uses:

POST {VECTOR_ENGINE_BASE_URL}/v1/images/generations
Authorization: Bearer {VECTOR_ENGINE_API_KEY}
Content-Type: application/json

Default body:

{
  "model": "gpt-image-2",
  "prompt": "<prompt>",
  "n": 1,
  "size": "1024x1024"
}

For visual references, use the edit endpoint instead of the create endpoint:

POST {VECTOR_ENGINE_BASE_URL}/v1/images/edits
Authorization: Bearer {VECTOR_ENGINE_API_KEY}
Content-Type: multipart/form-data

Multipart fields:

model=gpt-image-2
prompt=<prompt>
n=1
size=1024x1024
image=@reference.png

In this repository, calls with no reference images use POST /v1/images/generations; calls with any reference image use POST /v1/images/edits and pass references as one or more image form parts. Match3D container UI generation embeds public/match3d-background-references/pot-fused-reference.png into the edit request as an image part.

Accept image output from data[].url, data[].b64_json, or direct nested url fields. VectorEngine GPT-image-2 currently returns synchronously; do not poll APIMart task endpoints.

Environment

Load environment values from process env first, then .env.secrets.local, .env.local, and .env.example.

Required for live generation:

  • VECTOR_ENGINE_BASE_URL
  • VECTOR_ENGINE_API_KEY

Optional:

  • VECTOR_ENGINE_IMAGE_REQUEST_TIMEOUT_MS

If the key or base URL is missing, stop after dry-run or explain the missing configuration. Do not ask the user to paste the key in chat.

Prompt Rules

  • Use Chinese prompts when generating project puzzle templates.
  • Keep template samples square, clear, image-only, and suitable for puzzle thumbnails.
  • Avoid text, watermark, UI chrome, buttons, borders, and tutorial overlays.
  • Include local negative constraints in the prompt instead of relying on provider-specific negative prompt fields.

Resources

  • scripts/generate-template-samples.mjs: dry-run or live-generate puzzle template sample thumbnails.
  • assets/puzzle-template-prompts.json: default prompt list consumed by the script.