Full OpenAI-compatible GPT Image 2 coverage across images/generations, images/edits, and responses with the image_generation tool. Use when the one-shot image helper is not enough - text-to-image, mask edits, multi-image batches, streaming, partial_images, and mixed text+image Responses flows. Reads .env and respects process environment variables; works with any OpenAI-compatible gateway.
Full OpenAI-compatible GPT Image 2 API coverage with text-to-image, edits, and streaming responses.
Three subcommands cover all routes: generations for text-to-image, edits for mask-based image manipulation, and responses for streaming and mixed text+image flows Strict pre-flight validation enforces model constraints on size, aspect ratio, and feature combinations; includes --dry-run mode to inspect payloads before sending Supports multi-image batches, partial image previews, SSE streaming, and OpenAI-compatible gateways via environment variables or CLI flags Output patterns like image-{index}.png handle both single and batch workflows; raw JSON responses can be saved for debugging
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
This skill is a Python-based utility for interacting with OpenAI-compatible Image APIs (GPT Image 2). It provides subcommands for image generation, multipart edits, and streaming responses using only the Python standard library. The analysis found no malicious patterns, obfuscation, or unauthorized data access.
A single Python entrypoint that covers every GPT Image 2 route, with strict pre-flight validation of the model's size, aspect, and feature constraints.
Workflow
Open [references/config.md](./references/config.md) to pick environment variables and defaults.
Open [references/api-surface.md](./references/api-surface.md) to choose between generations, edits, and responses.
Prefer OPENAIBASEURL=https://api.openai.com/v1 unless the user asks for a different OpenAI-compatible endpoint.
Use gpt-image-2 for generations and edits; use a text-capable Responses model such as gpt-5.4 for responses.
Run scripts/gpt_image.py with one of the three subcommands.
Add --dry-run first when the payload shape is the main risk.
Add --save-response <path> when the raw JSON body or SSE event stream needs to be kept for debugging.
Commands
Text-to-image through the public Images API:
python .\skills\gpt-image-2\scripts\gpt_image.py generations `
--prompt "A bold product hero image for a developer tool homepage" `
--output .\out\hero.png `
--size 1536x1024 `
--quality high `
--format png
Multi-image batch with a filename pattern:
python .\skills\gpt-image-2\scripts\gpt_image.py generations `
--prompt "A cinematic city skyline at night" `
--output .\out\skyline-{index}.webp `
--n 3 `
--format webp `
--compression 90
Image edits with two inputs plus a mask:
python .\skills\gpt-image-2\scripts\gpt_image.py edits `
--prompt "Blend the two references into one clean marketing illustration" `
--image .\refs\subject.png `
--image .\refs\background.png `
--mask .\refs\mask.png `
--output .\out\edit-{index}.png `
--image-field-style brackets `
--n 2
Responses API with streaming and partial previews:
python .\skills\gpt-image-2\scripts\gpt_image.py responses `
--input-text "Generate a poster for an AI developer summit" `
--model gpt-5.4 `
--output .\out\poster-{index}.png `
--stream `
--partial-images 2 `
--save-response .\out\poster-events.json
Responses API edit with a local image plus a mask:
python .\skills\gpt-image-2\scripts\gpt_image.py responses `
--input-text "Turn this product shot into a clean studio ad" `
--model gpt-5.4 `
--input-image .\refs\product.png `
--mask .\refs\mask.png `
--output .\out\studio.png `
--action edit
Use edits for multipart image edits and mask uploads.
Use responses for advanced flows: streaming, mixed text + image input, previousresponseid, toolchoice, action, and optional toolmodel.
Process environment variables override .env; CLI flags override both.
Never print secrets.
--output takes either a single path or a pattern such as image-{index}.png for multi-image or streaming flows.
responses uses a top-level Responses model separate from the image model; default it to gpt-5.4 unless you need another text-capable model.
quality on Responses tool flows is passed through, but final behavior still depends on the hosted image tool.
On OpenAI GPT image models, omit response_format; image data already comes back as base64.
Fail fast on unsupported gpt-image-2 combinations: transparent background, invalid size, partial_images outside 0..3, or stream=true with n>1 on public Images routes.