Start Iterative Edit Session
start_edit_sessionStart a multi-turn image editing session that returns a session ID, enabling iterative refinements where each edit uses the previous output as input.
Instructions
Begin a stateful multi-turn edit session. Returns a session_id you then pass to continue_edit_session to iteratively refine the image (each turn uses the previous turn's output as the input). Use end_edit_session when done. The first turn hands off to a background job like every other image call: poll get_image_job for it, and the session_id arrives with its "completed" result.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| 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.5-sunburst", "gpt-image-2.5-flare", "gpt-image-2"; defaults to "gpt-image-2.5-sunburst". The 2.5 variants accept the same parameters. Cost/token estimates assume gpt-image-2 pricing. | |
| images | Yes | 1–8 input images to seed the session (same source formats as edit_image). | |
| 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; "transparent" asks for alpha (PNG) — verified working for the gpt-image-2 family, and the origin still decides, so check applied.background; "auto" lets the model pick. | 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 | ||
| turn | No | ||
| model | No | ||
| notes | No | ||
| route | No | ||
| state | No | ||
| usage | No | ||
| images | No | Written image files — present once the job completed successfully. | |
| job_id | No | Present on background hand-off — pass to get_image_job. | |
| prompt | No | ||
| applied | No | ||
| poll_hint | No | ||
| requested | No | ||
| session_id | No | Identifies the session for later continue_edit_session calls; present once a turn has landed. | |
| started_at | No | ||
| async_after_ms | No | ||
| prompt_preview | No | ||
| cost_usd_estimated | No |