GPT Image 2.5 Flare - Image To Image
4K Edits With a Transparent Default
- input_urls
- image
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
What it does
Hand it an image and a sentence, get the image back changed at up to 4K. It's the edit side of the GPT Image 2.5 "Flare" SKU that KIE resells - no local weights, no free tier, one metered call per run - wrapped as a single node in KIE Next/Image/OpenAI/GPT Image.
The default prompt is the tell for what this is built for: "transform this product image into a premium e-commerce poster style." Product restyling at print resolution is the job, and the 4K default resolution in the box reflects it. This is also the node you reach for when you want to keep a person's face intact while changing everything around them, since editing a reference beats regenerating from scratch for identity retention.
Under the hood
Node classes in this pack are generated at startup from KIE's published API docs, so the class name is derived from the operation rather than hand-written: KIE_Next_gpt_image_2_5_flare_image_to_image_4de68c12, the hash coming from the model id plus its docs URL. Same mechanism keeps it stable when the pack updates.
You don't paste URLs. The pack takes the IMAGE socket, uploads the pixels to KIE's file host, substitutes the returned URLs into the request, and POSTs the job to KIE's createTask endpoint using market model id gpt-image-2-5-flare-image-to-image. It then polls recordInfo until the task succeeds, downloads the result, and returns a tensor. Retries with backoff handle rate limits and flaky gateways; a brief grace period covers the gap where a task is reported successful before the result URL is readable.
Inputs
input_urls is the required IMAGE socket. It accepts a ComfyUI batch, which is how you supply a subject plus a style or garment reference in one go - the pack uploads each and sends the set. Order matters in practice: describe the images in the prompt in the order you wired them.
prompt is required, multiline, up to 20,000 characters. The default is short and directional. The most useful edit prompts state the invariant first - "preserve her exact likeness, pose and proportions" - then the single change, then how it should sit in the scene (lighting, shadows, reflections). Models in this class drift when the instruction is ambiguous about what not to touch.
aspect_ratio defaults to auto and offers thirteen values: 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, 27:16, 16:27, 9:8 and one more, plus auto. The tooltip names 27:16, 16:27, 9:8 and 8:9 as 1K-only. Since this is an edit node, auto is a reasonable default - it follows the source - but if you're compositing the result back into a layout, pin the ratio to the slot you're filling.
resolution defaults to 4K, with 1K and 2K below it. That default is aggressive: it's the slowest, most expensive setting and it's what you get if you don't look. For drafts, drop to 1K; for the final, go back up. Also mind the interaction with the exotic ratios - unusual frames are 1K-only.
background defaults to transparent, with opaque and auto available. For product-restyle work, transparent is genuinely useful - you get a cutout to place on your own backdrop, and your downstream nodes get alpha to work with, assuming they handle it (save as PNG, and check anything that assumes three channels). But if you want a finished picture with a scene, switch to opaque or auto, or you'll get your subject floating on nothing.
timeout_seconds defaults to 1200 seconds with a 30–7200 range. 4K edits are slow; leave the headroom.
callback_url is for pushing the result to a server endpoint you own. Empty is right here.
Outputs
image is the tensor to wire into Save Image, a preview, or a compositing chain. url is the hosted result, all_urls_json is the complete list of URLs from the task - the image socket carries a single tensor from the first usable URL, so anything beyond that only exists in this JSON - task_id is your receipt, raw_json is the full provider response, and credits_consumed / credits_left are your spend, repeated on the node face as a receipt after each success.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt
Restart ComfyUI. Then, once, at Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key, paste your key: the pack validates it before replacing anything, and afterwards you see only a masked fingerprint and a CONNECTED status. On a server, KIE_API_KEY in the environment takes priority. Requirements are requests, Pillow, numpy, PyYAML. No CUDAs, no checkpoints, no model folders to populate. The README points at the Windows one-click installer and the ZIP builds in dist/; Registry/Manager publication is described as "prepared" rather than live, so if Manager can't find the pack, git clone it.
Where it goes wrong
Uploading someone's photo is the mechanism. This node sends your input images to a third party that forwards them to the model provider. That's the trade, and it's worth being deliberate about.
Reference-in, not identity lock. The model holds a face remarkably well across edits and still drifts on big pose or lighting changes. Treat the reference as strong guidance, not a guarantee.
The 4K default will surprise your credit balance. Every attempt that reaches KIE is charged, including the one whose result you didn't like.
Fresh install, empty menu. Most nodes appear after the pack's first catalog sync. Restart, or run the Refresh Model Catalog node.
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 | transparent | 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 | — |