Edit Image
edit_imageEdit or compose images from 1–8 inputs using a text prompt, with optional mask-based region editing for tasks like background swaps, product retouching, and multi-image compositions.
Instructions
Edit or compose images with OpenAI's gpt-image-2 model family (models: "gpt-image-2" (default), "gpt-image-2.5-flare", "gpt-image-2.5-sunburst"). Give 1–8 input images plus a text prompt; optionally include a PNG mask whose transparent regions mark what to change (mask applies to the first image). Great for: swap backgrounds, retouch products, combine multiple reference images into one composition, maintain a character across scenes. These models always process inputs at high fidelity (no input_fidelity knob needed). The edited image is saved to disk and returned inline. Calls that exceed ~20s (slow proxy routes, large inputs) automatically move to a background job: the first response then carries a job_id — poll get_image_job until it reports state "completed".
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | How many images to generate (1–10). Each counts toward rate limits and cost. | |
| mask | No | Optional PNG mask — fully transparent pixels mark the editable region. Must match the first input image's dimensions and be <4MB. Accepts the same source types as `images`. | |
| size | No | Output dimensions. "auto" (default), one of the presets "1024x1024", "1536x1024", "1024x1536", or a custom "WxH" where both edges are multiples of 16, max edge ≤ 3840px, aspect ratio within 1:3–3:1, and total pixels 655,360–8,294,400. Outputs above 2K are beta. | auto |
| user | No | Optional end-user identifier forwarded to OpenAI for abuse monitoring. Pass a stable hashed user ID, not PII. | |
| model | No | Model to use. One of "gpt-image-2", "gpt-image-2.5-flare", "gpt-image-2.5-sunburst"; defaults to "gpt-image-2". The 2.5 variants accept the same parameters. Cost/token estimates assume gpt-image-2 pricing. | |
| images | Yes | Input images. Each entry can be: an absolute file path, a relative path (resolved from CWD), a file:// URL, an http(s):// URL, or a data:image/...;base64,... URL. PNG/WEBP/JPG, up to 50MB each. | |
| prompt | Yes | Image description. gpt-image-2 handles very detailed prompts; use ALL CAPS or quote literal text you want rendered verbatim. | |
| quality | No | Edit quality — same levels as generate. | auto |
| background | No | Background behavior. "opaque" forces a filled background; "auto" lets the model pick. gpt-image-2 does NOT support transparent backgrounds — use a different model for that. | auto |
| output_dir | No | Absolute or relative directory where generated images should be written. Defaults to $GPT_IMAGE_2_OUTPUT_DIR or a per-project subfolder under the OS config dir. The directory is created if missing. | |
| output_format | No | File format. "png" (default, lossless), "jpeg" (smaller, lossy), "webp" (best compression). When omitted on continue_edit_session, the session's current format is kept. | |
| filename_prefix | No | Short label appended to the generated filename so you can find it later (e.g. "hero-banner"). Letters/digits/hyphens only; auto-sanitized. | |
| output_compression | No | Compression level 0–100 for jpeg/webp outputs. Ignored for png. Defaults to 100 (minimal compression). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | ||
| model | No | ||
| notes | No | ||
| route | No | ||
| state | No | ||
| usage | No | ||
| images | No | ||
| job_id | No | Present on background hand-off — pass to get_image_job. | |
| prompt | No | ||
| applied | No | ||
| poll_hint | No | ||
| requested | No | ||
| started_at | No | ||
| async_after_ms | No | ||
| prompt_preview | No | ||
| cost_usd_estimated | No |