GPT Image 2.5 Sunburst - Image To Image
Product Shots at 4K, Minus the Studio
- input_urls
- image
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
What it is
Drop an image in, describe the change, get the image back - up to 4K. This is the edit half of the "Sunburst" GPT Image 2.5 variant KIE resells, exposed as one node in KIE Next/Image/OpenAI/GPT Image. No local model, no weights, no free tier: every run is a paid call to the reseller, which forwards it to the provider.
Its shipped prompt is "transform this product image into a premium e-commerce poster style," which is the intended job in one line. Product photography restyling - new backgrounds, new lighting, new context - without a studio or a photographer. The 4K default resolution and its opaque-background default (versus Flare's transparent one) both point at "finished marketing image" rather than "cutout to composite."
It's also a solid identity-preserving editor for people: hand it a portrait plus an instruction and it will keep the face while changing wardrobe, setting or framing. Editing a good base image holds an identity far better than regenerating from scratch ever did, which is why that's the current advice rather than any adapter trick.
Mechanism
Node classes come from KIE's published API docs, generated at startup - hence the derived class name KIE_Next_gpt_image_2_5_sunburst_image_to_image_135796fe, where the trailing hash is computed from the model id and its documentation URL so the ID survives pack updates.
Your image isn't pasted in as a URL. The pack reads the IMAGE socket, uploads the pixels to KIE's file host, substitutes the URLs into the request body, and POSTs to KIE's createTask endpoint with market model id gpt-image-2-5-sunburst-image-to-image. It then polls recordInfo for status, downloads the result on success, and returns a tensor. Rate limits and server errors are retried with backoff; when a task reports success a beat before its output URL is readable, the pack keeps polling instead of charging you for a false failure.
Inputs
input_urls is the required IMAGE socket, and it takes a ComfyUI image batch - which is how you feed a subject plus a garment, or a product plus a style reference, in a single connection. The pack uploads each image and sends the set as references. Describe them in your prompt in the order you wired them; models guess badly.
prompt is required, multiline, up to 20,000 characters. The default is one short sentence. The pattern that works: state what stays identical, state the one thing that changes, then describe how the change sits in the scene - lighting, shadows, reflections, color temperature. Ambiguity about what should not change is where edits go wrong.
aspect_ratio defaults to auto across thirteen options: 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, 27:16, 16:27, 9:8, one more, plus auto. The tooltip notes 27:16, 16:27, 9:8 and 8:9 are 1K-only, so those don't combine with the higher resolutions. For an edit, auto follows the source sensibly; pin a ratio when you're filling a slot in a layout.
resolution defaults to 4K, with 1K and 2K below. That's the most expensive setting in the box and it's what you get without looking - which is either exactly what you want for a print-ready product shot, or an expensive way to iterate. Draft at 1K, deliver at 4K.
background defaults to opaque, with transparent and auto available. Opaque for a finished image; transparent when you want a cutout to place on your own backdrop, in which case make sure whatever you save into and whatever consumes it handle alpha (PNG out, and watch for nodes that flatten to three channels).
timeout_seconds sits at 1200 by default and can range 30–7200 in 30-second steps. A 4K edit is not fast. callback_url is only for pushing results to a server of your own - leave it empty.
Outputs
image is the tensor you wire onward. url is the hosted result, all_urls_json is every URL the task produced (the image socket carries just one tensor from the first usable URL, so extras appear only in this JSON), task_id is your ticket reference, raw_json is the full provider response, and credits_consumed / credits_left are the cost - also rendered on the node as a receipt after each successful run.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt
Restart ComfyUI, then set your key once at Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. The pack tests the key against KIE before overwriting a working one, and only a masked fingerprint is shown afterwards; KIE_API_KEY in the environment overrides the saved key for servers. Dependencies are requests, Pillow, numpy, PyYAML - nothing compiled, nothing downloaded. The README's preferred install is the Windows one-click installer or the ZIPs in dist/; Registry/Manager publication is described as "prepared," so a Manager search that comes up empty means clone it by hand.
Practical notes
Your inputs leave the machine. Uploading a reference image to a third party is the mechanism here, not a side effect. For client product shots, know where those pixels are going.
A reference isn't an identity lock. The model holds faces well and still drifts on hard changes of pose, angle or light. The pack's own character tooling is careful to say so; you should be too before promising a client a matching set.
Watch the credit receipt. It's the cheapest early warning you have that a batch loop is multiplying expensive 4K calls.
Empty node menu on first launch. Most nodes are built during the pack's first catalog sync. Restart once, or run Refresh Model Catalog.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Transform this product image into a premium e-commerce poster style. | Text prompts, up to 20,000 characters. |
| input_urls | IMAGE | — | |
| aspect_ratioopt | COMBO | auto | The aspect ratio of the generated image is set to auto by default. The 27:16, 16:27, 9:8 and 8:9 aspect ratios support 1K only. 2K and 4K are available for other aspect ratios. |
| resolutionopt | COMBO | 4K | Image resolution |
| backgroundopt | COMBO | opaque | Image background |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |