hiapi-gpt-image-2-5
Installation
SKILL.md
HiAPI GPT Image 2.5
This released 0.3.3 skill wraps HiAPI's unified async image API for six GPT Image 2.5 model IDs in two routes:
- Mode route (default). When
--modelis omitted, the CLI selectsgpt-image-2.5-<family>/text-to-imagewithout reference images andgpt-image-2.5-<family>/image-to-imagewith them.--familyisflareby default; usesunburstonly when the caller asks for Sunburst. Priced per image byresolution(1K/2K/4K). - Pro route (
--route pro).gpt-image-2.5-flare@proorgpt-image-2.5-sunburst@pro, used only when the caller asks for pro, quality tiers, or a PNG/JPEG/WebP output choice. Priced per image byquality.
Never send the bare IDs gpt-image-2.5-flare or gpt-image-2.5-sunburst; the CLI rejects them.
Each accepted task produces one image. Do not infer a quality, speed, or visual advantage between Flare and Sunburst or between the routes.
Required sequence
- Decide whether the request is text-to-image (no
--image-url) or image-to-image/editing (1–16--image-urlvalues). The mode route accepts public HTTP(S) URLs ordata:image/png|jpeg|webp;base64,URIs; the pro route accepts public HTTP(S) URLs only. Local file paths are not uploaded. - Validate the prompt and options locally. All six model IDs require a non-empty prompt of at most 20,000 UTF-16 code units after trimming surrounding whitespace (JavaScript
string.length; astral emoji count as two). The API returnsINVALID_REQUESTwith amaxLengthmessage above that. Text-to-image additionally has an internal o200k token cap that returnsPROMPT_TOO_LONG; image-to-image has no token cap. Run--dry-run --estimatebefore a paid create. The estimate reads the current/api/pricingsnapshot and creates no task. The CLI rejects fields that belong to the other route (--quality/--output-formaton the mode route,--resolutionon the pro route) and--backgroundwith resolution 2K/4K. - Submit once with a stable
--idempotency-key. The CLI prints the key and task ID to stderr immediately after acceptance. If acceptance is ambiguous, reuse the same key; never blind-retry with a new key. - Use the default wait, or
--no-waitto return after submission. Use--resume-task-idto poll/download an existing task without creating another task. Use--no-savewhen you only need the output URL. - Keep the downloaded image through technical and creative checks. Treat temporary output URLs as expiring.