agentsclimarketplace

Gpt image 2 api

Skill kiakun-collab/kiakun-skills/skills/gpt-image-2-api

Kiakun 的 AI Agent Skills 集合(Claude Code / OpenClaw / 通用 SKILL.md):HTML→可编辑 PPTX、图片型 PPT 重构、GPT Image 2 出图、小红书/B站自动化、文件夹向量知识库、游戏 UI 与玩家互动设计等 10+ 技能。

Install
npx -y skills add kiakun-collab/kiakun-skills --skill gpt-image-2-api

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

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Generate or edit images with XApex asynchronous tasks as the default route, AtlasCloud as the first edit fallback, and aifast as the final fallback, plus forced-provider profiles and batch generation. Use for text-to-image, local or URL reference editing, multi-reference composition, precision-sensitive graphics, XApex image-group tokens, provider-specific sizes and quality, resilient routing, and batch jobs.

SKILL.md

10.0 KB, as published. Nobody here has run it

GPT Image 2 API

The scripts are already built and tested. Run them directly — never rewrite, regenerate, or reimplement them. Just call node scripts/<name>.js from this skill directory with the right flags. Reach for references/api-reference.md only when you need provider payloads or to diagnose an API error.

Start Here (no setup needed on each run)

# Text to image
node scripts/generate.js --prompt "a red fox in snow"

# Edit one image
node scripts/edit.js --image photo.png --prompt "add sunglasses"

# Batch: many prompts at once
node scripts/batch.js --promptlist prompts.txt

# Default: XApex asynchronous submission and polling
node scripts/generate.js --prompt "a red fox in snow" --quality low
node scripts/edit.js --image photo.png --prompt "add sunglasses"

# Force synchronous XApex or a specific fallback provider only when needed
node scripts/generate.js --sync --prompt "a lighthouse at dusk"
node scripts/generate.js --profile vip --prompt "force aifast max"

Add --dry-run for a no-cost route/cost preview. Add --json for a machine-readable result.

If a run fails with a missing-key or config error, do the one-time setup below. Otherwise skip it.

Choosing a command

You want to...Use
One image from textgenerate.js
One image edited from a referenceedit.js
Many images in one gobatch.js

Reference-image intent (decide before editing)

When the user supplies a reference image, decide why the pixels matter, then route:

A. Identity / replication — the reference itself must be preserved. Face swap, same character across scenes, keep this exact product/logo, "use this photo", composition or subject must carry over. The model needs the actual pixels as context. → Use edit.js with --image/--url. For multi-image consistency (e.g. character + scene), pass every needed reference; the default XApex edit accepts multiple references.

B. Style / material / palette only — borrow the look, not the subject. "Same art style as this", "this brushwork/texture", "this color mood", but a new subject or scene. Feeding raw pixels here tends to leak the reference's subject and composition. → Prefer describing the look in words and using generate.js (text-to-image): read the reference, write the style/material/palette/lighting into the prompt, then generate fresh. → If the style is hard to verbalize and fidelity matters, fall back to edit.js with a prompt that explicitly says to copy only the style and invent a new subject/composition.

When unsure, ask one short question: "Do you want this image reproduced (keep the subject), or just its style on a new subject?" Default to A (edit with the reference) only when the user clearly means "this exact thing".

Batch generation

Two input modes:

Prompt list — one prompt per line, all sharing the same routing/size params:

node scripts/batch.js --promptlist prompts.txt --model gpt-image-2-max --size 9:16

JSON manifest — per-task control (mix generate and edit, different sizes, references):

node scripts/batch.js --batch tasks.json

tasks.json is a JSON array (or one JSON object per line, JSONL). Each task:

[
  { "prompt": "a red fox in snow" },
  { "prompt": "a launch poster", "model": "gpt-image-2-max", "size": "9:16", "quality": "high" },
  { "prompt": "add sunglasses", "images": ["photo.png"] },
  { "prompt": "combine references", "images": ["a.png", "b.png"], "output": "combo.png" }
]

Per-task fields: prompt or promptfile, profile, model, size, quality, n, async, output, and images / urls (presence of either routes the task to edit.js).

Batch flags: --concurrency <n> (default 2, keeps clear of rate limits), --output-dir <dir> (base for auto-named outputs), --dry-run, --json. Batch continues past a failed task and prints a summary of successes and failures at the end. Batch runs generate/edit tasks in-process, so it avoids starting a fresh Node.js child process for every image.

Auto-named outputs include milliseconds plus a process-local counter, so parallel or rapid same-prompt tasks do not overwrite each other by default.

Common single-task flows

Preview a high-detail edit before incurring cost, then rerun without --dry-run:

node scripts/edit.js --profile vip --url https://example.com/source.jpg \
  --prompt "high-detail e-commerce poster" --size 2048x2048 --quality high --dry-run

node scripts/edit.js --profile vip --url https://example.com/source.jpg \
  --prompt "high-detail e-commerce poster" --size 2048x2048 --quality high \
  --output output/poster.png --json

VIP text-to-image:

node scripts/generate.js --model gpt-image-2-max --size 9:16 --quality high \
  --prompt "A launch poster with dense product detail" --output output/poster.png --json

For generation, --quality high is only a routing hint that selects gpt-image-2-max; it is not sent as an API field. Standard gpt-image-2 uses the provider 1K create sizes. Max gpt-image-2-max follows the aifast VIP size table; ratio tokens such as 9:16 map to documented 2K presets such as 1440x2560 so the requested and returned dimensions stay aligned.

Routing

Default --profile auto. In auto, XApex handles the task asynchronously first. Provider fallback is capability-aware and records each failed attempt in structured JSON.

TaskPrimary routeFallback
Text-to-imageXApex gpt-image-2 asyncaifast; AtlasCloud is skipped because it is edit-only
Image edit, one or multiple referencesXApex gpt-image-2 asyncAtlasCloud, then aifast
Explicit --profile xapexXApex only, async by defaultNone
Explicit --profile atlasAtlasCloud edit onlyNone
Explicit `--profile standardvip`aifast only

--profile hd is a legacy alias for vip. Use --profile atlas only to force the AtlasCloud channel for diagnosis. AtlasCloud uses openai/gpt-image-2/edit, so it needs at least one reference image; VIP text-to-image does not fall back. Disable edit fallback with GPT_IMAGE_ATLAS_FALLBACK=false.

--profile xapex forces the isolated XApex route. Leave the profile at auto to enable the default priority chain. Provider keys and Base URLs remain isolated throughout fallback.

Parameters

  • Prompt: use exactly one of --prompt or --promptfile.
  • Routing: --profile auto|standard|vip|atlas|xapex; prefer auto for XApex-first resilient routing. Explicit profiles force a provider (hd = legacy alias for vip).
  • References for editing: repeat --image for local files or repeat --url for public URLs. Do not mix --image and --url in the same request.
  • Standard generation size: auto, 256x256, 512x512, 1024x1024, 1280x720, 720x1280, 1536x1024, 1024x1536, 1792x1024, or 1024x1792.
  • Max generation size: a documented aifast VIP/max preset, including 1K, 2K, and 4K table entries such as 2048x2048, 2560x1440, 1440x2560, 3840x2160, or 2160x3840. Ratio tokens such as 9:16 map to the documented 2K presets by default.
  • Edit/VIP size: a documented edit preset or ratio token such as 9:16.
  • XApex size: 1024x1024, 1536x1024, or 1024x1536. Other pixel sizes and ratios are mapped client-side by orientation to one of these safe sizes.
  • Quality: for generation, --quality only routes to gpt-image-2-max and is omitted from the API request. Live probes against aifast showed quality can make max generation disconnect even when the same size succeeds without it. For edit/Atlas fallback, auto, low, medium, or high are supported. XApex sends quality for both generation and edits; its default is low.
  • XApex async: enabled by default through XAPEX_ASYNC_DEFAULT=true. The script submits to the XApex /async endpoint and polls /v1/images/tasks/{task_id} with the same key. Use --sync only for diagnosis; --async remains an explicit override.
  • Fallback: auto generation uses XApex -> aifast; auto editing uses XApex -> AtlasCloud -> aifast. Set GPT_IMAGE_DEFAULT_FALLBACK=false to disable it.
  • Timeout: leave OPENAI_IMAGE_TIMEOUT_MS=0 so long high-resolution jobs can finish.
  • Retries: OPENAI_IMAGE_MAX_RETRIES also covers generated-image URL downloads and remote reference downloads; 5xx/429/network failures retry, ordinary 4xx failures do not.
  • Generation omits quality and response_format; the scripts save either data[].url or data[].b64_json responses.
  • Output: --output, optional --prompt-output, and recommended --json.

Read references/api-reference.md for provider payloads, supported sizes, fallback behavior, or API error diagnosis.

One-time setup (only when a run reports missing config)

node scripts/check-config.js          # reports keys, models, endpoints, timeout, fallback
cp .env.example .gateway.env          # then fill OPENAI_API_KEY
  1. Provide Node.js 18+. Keep secrets out of Git.
  2. Put gateway settings in an auto-loaded file: current-directory .env, current-directory .gateway.env, user-level ~/.gateway.env, or the skill root .env / .gateway.env. Earlier sources win; process environment variables always win over files.
  3. XAPEX_API_KEY is required for the default route and must be an XApex 图片 group token. Add ATLASCLOUD_API_KEY for the first edit fallback and OPENAI_API_KEY for the final aifast fallback or forced standard/VIP profiles.
  4. Keep OPENAI_IMAGE_TIMEOUT_MS=0 unless the caller wants a local abort limit.
  5. Confirm check-config.js shows ready: true, hasApiKey: true, and timeoutMs: none.

Keep looking

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