OpenAI
GPT Image 2.6
gpt-image-2.6-sunburst/text-to-image
OpenAI's two-tier image generation and editing models: Flare focuses on speed, Sunburst on precision, with direct GIF and SVG output and partial image edits
Try gpt-image-2.6-sunburst/text-to-image
Input
Output
imagePricing
gpt-image-2.6-sunburst/text-to-image per image
Positioning Overview
gpt-image-2.6-sunburst is the text-to-image line within OpenAI's image generation model family, aimed at developers who need to produce images in batches through the unified HiAPI.ai interface. It supports generating images directly from text prompts, with output formats covering common raster images as well as SVG vector graphics and GIF animations, and finished-output specifications can be controlled through parameters such as quality, resolution, and aspect ratio. Among these, Sunburst better maintains image detail consistency across multiple rounds of iteration at medium and higher rendering quality, making it suitable for visual content workflows that require continuous output and repeated adjustment.
Key Highlights
- More stable detail consistency across rounds — when performing multiple rounds of generation or adjustment at medium or high rendering quality, Sunburst better maintains image detail consistency.
- Output formats extended to vector and animation — text-to-image can directly output SVG vector files and GIF animations, reducing the need for format conversion outside the interface.
- Generation and planning quality adjustable separately — quality controls rendering precision, while complexity independently controls the planning level, which can be raised separately for dense text and complex layouts.
- Aspect ratios cover common commercial layouts — aspect_ratio provides multiple ratios from 1:1 to 21:9 and 3:1, so the corresponding size can be produced in one go per distribution channel.
Capability Description
Text-to-image generation: enter a prompt of up to 32,000 characters to generate an image; the output defaults to png, suitable for scripted batch image generation.
Layered control of rendering quality and planning: quality offers five rendering precision levels from low to max, while complexity independently controls the planning level, so complex layouts can raise planning separately without having to raise the overall rendering tier.
Resolution and aspect ratio settings: resolution offers three tiers—1K, 2K, and 4K—and together with multiple aspect ratios, directly generates finished sizes that match the target layout.
Multi-format output and compression: png, jpeg, webp, gif, and svg are available; jpeg and webp support compression levels from 0 to 100, making it easy to trade off between image quality and file size.
Transparent background and GIF animation: when background is set to transparent, output is limited to png or webp; GIF allows setting frame count, frame size, and frame interval, with frame rate and frame dimensions determined directly by the parameters.
Use Cases
- Rapid draft generation for design teams — generate multiple draft versions from short prompts, filter by quality tier and aspect ratio, then move on to refinement, for comparing options at the concept stage.
- Continuous production of series brand visual assets — generate repeatedly around the same theme, with more stable details at medium-to-high quality; the output can be used directly for materials requiring a consistent style, such as official websites and product pages.
- Social and event materials for operations teams — generate accompanying images in batches at ratios such as 1:1, 9:16, and 16:9, then compress them for social media distribution and event landing pages.
- Vector and animation asset generation for developers — choose svg or gif output to directly obtain vector graphics or frame-by-frame animations, for icons, illustrations, and lightweight motion effects.
Limitations and Selection Advice
This line supports text-to-image generation only; if you need to make local modifications using an existing image as input, you should switch to the image-to-image line. Sunburst's cross-round consistency advantage is premised on medium or high rendering quality, and the same stability should not be expected at low quality tiers. GIF output does not support the aspect ratio parameter; frame size must be specified in pixels and must meet the frame count limit; transparent backgrounds are compatible only with png and webp. For scenarios with strict requirements on generation speed that do not need stable details, you can evaluate the Flare line in the same family.
Frequently asked questions
View all FAQs →-
How is billing calculated? Will I be charged if a request is rejected?
Billed per image; the unit price is determined by quality tier and resolution, as shown in the price table on this page; Flare and Sunburst are priced the same. For image-to-image, each reference image adds $0.012. GIFs are priced separately by quality tier, regardless of resolution. Requests with invalid parameters or GIF dimensions exceeding the limit are rejected at the submission stage, and the pre-authorized charge is fully refunded with no fee deducted.
-
Can I modify only part of an image?
Yes, use the image-to-image route, with one of two options. The first is mask_url: pass an RGBA PNG of the same dimensions as the first source image, where fully transparent pixels are the areas to be modified. The second is markup_url: pass a transparent PNG annotation image that marks the locations to change with circles or similar markings; the annotations themselves will not appear in the result. The two cannot be passed at the same time. Even with a mask, the model may still make slight redraws across the entire image.
-
What is the difference between Flare and Sunburst, and which one should I choose?
The two have exactly the same parameters, usage, and pricing; the difference lies in their focus. According to OpenAI's introduction, Flare generates images faster, making it suitable for rapid iteration and batch image generation, and is the recommended default choice; Sunburst emphasizes detail more, and during multi-round editing at the medium quality level and above, it keeps character, product, or layout details more consistent. Generally, start with Flare; when the same image needs repeated revisions and detail stability is required, switch to Sunburst and set quality to medium or higher.
-
Can it generate GIF animations or SVG vector graphics directly?
Yes. On the text-to-image route, just set output_format to gif or svg; the image-to-image route only supports png, jpeg, and webp. GIF is controlled by three parameters: set frame_size to the pixel size of each frame (default 512x512; the width and height also determine the GIF's aspect ratio), set frame_count to the number of frames (2–16, default 9), and set frame_duration_ms to the duration of each frame (default 200 milliseconds). When generating a GIF, either omit aspect_ratio or pass auto.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: gpt-image-2.6-sunburst/text-to-image
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for gpt-image-2.6-sunburst/text-to-image and route default — see the parameter table below.
promptstringRequiredminLength 1maxLength 32000Describe the image to generate, up to 32,000 characters.
qualitystringOptionalDefault: "high"Rendering quality tier; options are low, medium, high, xhigh, max; defaults to high when omitted.
lowmediumhighxhighmaxbackgroundstringOptionalBackground mode; options are auto, opaque, transparent; transparent requires png or webp output.
autoopaquetransparentcomplexitystringOptionalPlanning level, independent of rendering quality: low suits simple images with a single subject, high suits dense text and complex layouts; defaults to high when omitted.
lowmediumhighframe_sizestringOptionalpattern ^(auto|[0-9]+x[0-9]+)$For GIF only: pixel width x height of each frame, e.g., 512x512; width and height together determine the GIF's aspect ratio. Both sides must be multiples of 16; ratio formats like 1:1 are not accepted; defaults to 512x512 when omitted or set to auto. All frames are tiled into a single image; each side of that image must not exceed 3840, total pixels must not exceed 8,294,400, and aspect ratio must not exceed 3:1; values exceeding these limits are rejected at submission and are not billed. 512x512 supports 2–16 frames; 768x768 supports up to 12 frames.
moderationstringOptionalContent moderation level; options are auto or low; defaults to low when omitted.
autolowresolutionstringOptionalDefault: "1K"Output resolution tier; options are 1K, 2K, 4K; defaults to 1K when omitted.
1K2K4Kframe_countintegerOptionalDefault: 9min 2max 16For GIF only: number of frames, an integer from 2–16; defaults to 9 when omitted. When frame size is 768x768, at most 12 frames.
aspect_ratiostringOptionalDefault: "auto"Output aspect ratio; defaults to auto when omitted. GIF does not use this parameter: omit it or set it to auto, and use frame_size to control each frame's size and ratio.
auto1:13:22:34:33:45:44:5Show all (8)
16:99:162:11:221:99:213:11:3output_formatstringOptionalDefault: "png"Output format; options are png, jpeg, webp, gif, svg; defaults to png when omitted. gif outputs an animated image, svg outputs a vector file; these two only support text-to-image. If output_compression is provided, jpeg or webp must also be provided; if any of frame_size, frame_count, or frame_duration_ms is provided, gif must be provided.
pngjpegwebpgifsvgframe_duration_msintegerOptionalDefault: 200min 20For GIF only: display duration of each frame in milliseconds, minimum 20, rounded to the nearest 10 ms; defaults to 200 when omitted.
output_compressionintegerOptionalmin 0max 100Compression level 0–100, only for jpeg or webp; when this parameter is provided, output_format must also be set to jpeg or webp.
callbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.6-sunburst/text-to-image",
"input": {
"prompt": "…",
"quality": "high",
"resolution": "1K",
"frame_count": 9,
"aspect_ratio": "auto",
"output_format": "png",
"frame_duration_ms": 200
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-image-2.6-sunburst/text-to-image",
input: {
"prompt": "…",
"quality": "high",
"resolution": "1K",
"frame_count": 9,
"aspect_ratio": "auto",
"output_format": "png",
"frame_duration_ms": 200
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "gpt-image-2.6-sunburst/text-to-image",
"input": {
"prompt": "…",
"quality": "high",
"resolution": "1K",
"frame_count": 9,
"aspect_ratio": "auto",
"output_format": "png",
"frame_duration_ms": 200
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →-
Guide
OmniHuman 1.5 Prompts: 5 Ready-to-Use Templates
Five templates with real outputs for presenters, pets, full-body shots and groups.
6 -
Guide
Qwen Image 2.1 API Pricing: $0.05 per Image
Pro and Turbo per-image rates, budgets by volume, how the model compares with other image models on HiAPI, and how to pick a tier.
4 -
Guide
What Is GPT Image 2.6? Markup Edits and Specs
What OpenAI's API spec says about GPT Image 2.6, how the new markup edit field works, and what hasn't been published yet.
5 -
Comparison
Qwen Image 3.0 vs Nano Banana 2 API (2026): Price, Resolution, Image Quality and When to Use Each
A concrete comparison of two Alibaba and Google image generation APIs — with real outputs, per-image cost breakdowns, and schema examples.
6 -
Tutorial
OpenAI Invalid API Key: Authentication Checks
Separate OpenAI 401, 403, and 429 errors. Check runtime variables, account context, and credentials with a read-only request.
3 -
Guide
Qwen Image 2.1 Pro Prompts: 7 Text-Heavy Recipes With Real Outputs
-
Guide
Qwen Image 2.1 Turbo Prompts: 5 Recipes and Edit Tests With Real Outputs
-
Comparison
GPT Image 2.6 vs 2.5: Same Prompt, Side-by-Side Comparison
Parameter surfaces, billing rules, output sizes and what actually changes on screen
8 min read -
Guide
Recraft V4.1 Flash for E-Commerce Product Images: $0.01 Batch Catalog Shots
A real parallel batch on recraft-v4.1-flash/text-to-image: listing and scene shots, measured background whiteness, timing, and a batch script.
7
Related Models
View all models →Same Type
-
Z-Image Alibaba $0.008 /image -
Nano Banana 2 Lite Google $0.033 /image -
Qwen Image 3.0 Alibaba $0.036 /image -
Wan 2.7 Image Alibaba $0.035 /image -
Ideogram V3 Character Ideogram $0.090 /image -
Ideogram V4.5 Ideogram $0.011 /image -
BRIA Product Shot Bria $0.058 /image -
Nano Banana 2 Google $0.018 /image -
FLUX.2 Klein 9B Black Forest Labs $0.0086 /image -
Imagen 4 Google $0.030 /image -
GPT Image 2.6 OpenAI $0.023 /image -
FLUX.1 Kontext Max Black Forest Labs $0.071 /image