GPT Image 2.5 Sunburst · Image Editing
Same Inputs as Flare, Slower, Better, Worth the Wait
- image_urls
- mask_url
- images
- alpha
- task id
Sunburst and Flare are the same model family, the same inputs, the same price tag - and Sunburst is the quality-first one. If you have a keeper image and a specific change to make, this is the node; if you're still exploring the change, Flare will get you there for the same money in less time.
What it is
An instruction-editing wrapper around OpenAI's GPT Image 2.5. You hand it one to sixteen source images and a sentence describing the edit, plus optionally a mask to fence off the area that may be repainted. Output is 1K to 4K as PNG, JPEG or WebP, at about $0.001816 per image at the headline rate, and it's promoted as the higher-quality half of the 2.5 pair.
Instruction editing is where the character-consistency problem actually went in 2026 - instead of hoping a new generation resembles the old one, you edit the one you already like, so identity survives because the model is looking straight at it. The catch, which the KB's write-up on this is blunt about, is that an edit model re-emits the entire frame rather than patching yours: pixels nobody asked about move, chains of edits compound, and faces can drift. Masking is the mitigation. Which is why the mask_url input on this node isn't a footnote.
Inputs, in the order that matters
- prompt - what changes, and what must not. Half the value of this node is in the second clause.
- image_urls - autogrow sockets, one to sixteen. Connect one and another appears. Position in the row is how your prompt refers to them.
- mask_url - the modifier. Small wrinkle: the convention is transparent pixels = repaint area, applied to the first source image. Crank out a black-and-white mask from a segmentation node and you'll need to invert it into alpha before this node will behave.
- input_fidelity - how much of the sources' look to preserve. When an edit comes back looking like a re-interpretation instead of a variant, this is the first dial to move.
- quality / resolution / aspect_ratio - five quality tiers, 1K–4K, and a ratio (1:1 default).
- num_outputs - 1 to 10, and each one is billed as a separate image.
- background - treatment of the output background, transparency included.
- output_format / output_quality - PNG by default; output_quality only applies to JPEG and WebP.
Outputs are images, an alpha MASK (1 = opaque) and task id. The mask is genuinely handy - feed it into compositing, or into anything that expects a ComfyUI mask - and it's the kind of detail a lot of API nodes don't bother to expose.
Installing it
ComfyUI Manager → search SpicyAPI → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart ComfyUI, open Settings > SpicyAPI, paste a key from spicyapi.ai/console/keys, and restart once more so the node list comes from your account catalogue. There is nothing else to install - the pack declares no dependencies and uses the aiohttp, torch and PyAV ComfyUI already ships. Uploads are cached per account for 12 hours by content hash, so re-running with a tweaked instruction doesn't re-send your sources.
Traps
Your sources go to a server, and OpenAI's filter decides what it will edit. That's not a bug in the node; it's the category. The GPT Image line's moderation has a well-documented history of moving around, so treat any single result as a sample rather than a policy.
On money: num_outputs multiplies everything, and 4K multiplies everything else. Set Max cost per run in Settings > SpicyAPI - the node quotes the job, checks the worst case against your limit, and refuses before a task is created. The badge you see on the node is a rate, deliberately never a total, since the real number depends on the tier you pick and how many images come back; the charge is printed when the run finishes. Cancelling doesn't cancel the job - it keeps generating on SpicyAPI, bills if it succeeds, and the result stays in your console for up to 14 days. If a task ends content_rejected, you generally weren't charged.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Say what to change and what must stay the same. | |
| image_urls | COMFY_AUTOGROW_V3 | One to 16 source images, in the order your prompt refers to them. | |
| aspect_ratio | COMBO | 1:1 | Output aspect ratio. |
| resolution | COMBO | 1k | Output size tier. |
| quality | COMBO | high | Rendering quality. Higher tiers add detail, time and cost. |
| num_outputs | INT | 11–10 | How many images to return, each billed separately. |
| input_fidelity | COMBO | low | How closely to keep the look of the source images. |
| background | COMBO | auto | Background treatment of the result. |
| output_format | COMBO | png | File format of the returned images. |
| output_quality | INT | -1-1–100 | Compression quality for JPEG and WebP, from 0 to 100. -1 leaves it to the model. |
| seed | INT | 00–2147483647 | This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed. |
| mask_urlopt | IMAGE | Optional PNG mask: transparent pixels mark the area to repaint in the first source image. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| alpha | MASK | Transparency of each image: 1 is opaque. |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |