Nodes/KIE.ai Nodes Next/GPT Image-1.5 - Image to Image
ComfyUI Node

GPT Image-1.5 - Image to Image

Turn Your Batch Into a Reference Set

By felipederosilva·Created about a month ago·Updated a day ago· 3
GPT Image-1.5 - Image to Image
  • input_urls
  • image
  • url
  • all_urls_json
  • task_id
  • raw_json
  • credits_consumed
  • credits_left
◄promptEdit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.►
◄aspect_ratio3:2►
◄qualitymedium►
◄timeout_seconds1200►
◄callback_url►

What you'd use it for

Take an image - or several - give the model a sentence of instruction, get the image back changed. That's the node. It's OpenAI's GPT Image 1.5 edit path, reached through KIE.ai, sitting in KIE Next/Image/OpenAI/GPT Image in a pack that wraps the reseller's whole catalogue as individual ComfyUI nodes.

In practice this is the "virtual try-on, product restyle, background swap, fix the hands" node. The default prompt the pack ships with tells you the intended use better than any description: dress the woman using the provided clothing images, preserve her exact likeness, expression, hairstyle and proportions, replace only the clothing, match lighting and color temperature so it doesn't look pasted on. That's the workflow people actually run, and it's a good template for yours - say what to hold constant before you say what to change.

The wider context matters here. Character consistency never got solved by adapters; it got rerouted into editing a single good base image. The packs and workflows that do this well all reduce to the same two steps: generate once, then edit from that image forever. This node is step two.

How it works

The pack generates its node classes at startup from KIE's published API docs, so the class name is derived rather than hand-written: KIE_Next_gpt_image_1_5_image_to_image_3625c8a8, the trailing hash coming from the model id and its docs URL. That's how IDs stay stable across pack releases.

Your input images aren't URLs you paste. The pack takes the IMAGE socket, uploads the pixels to KIE's file host, substitutes the resulting URLs into the request, then POSTs the job to KIE's createTask endpoint with the model id gpt-image/1.5-image-to-image. It polls recordInfo until the task succeeds, downloads the result, and returns a tensor. There's retry-with-backoff for rate limits and 5xx responses, and a grace period when a task reports success a second before its URL becomes readable.

Inputs

input_urls is the required IMAGE socket, and it's the reason to pick this node over the text-to-image sibling. It accepts a ComfyUI image batch, which the pack uploads as multiple reference URLs - so "this person, wearing this outfit, in front of this backdrop" is three images batched in, plus one prompt describing how they combine.

prompt is required, multiline, and takes a long instruction comfortably. The default is a fully specified paragraph. Match that style: name what must be preserved, then the single change, then the integration details (lighting, shadows, color temperature). Vague prompts here don't produce variety, they produce mush.

aspect_ratio gives 3:2, 1:1, and 2:3 - a deliberately short list, and a real constraint. There's no 16:9 and no 9:16. Since this is an edit node, the practical move is to match your source ratio: feed it a portrait image, pick 2:3, don't ask for a square and hope.

quality is medium or high. Medium is the balanced option; high is the slow, detailed one. For iteration, medium; for the final pass on fine detail and small text, high.

timeout_seconds defaults to 1200 with a 30–7200 range. callback_url is for server-side push and should stay empty in ComfyUI.

There's no seed and no negative prompt. Like its text-to-image sibling, this node is not reproducible: the same inputs twice will not give you the same image twice.

Outputs

image is what you wire onward. url is the hosted result if you want to hand the link to something outside ComfyUI. all_urls_json holds every URL the task returned - worth knowing, because the image socket only ever carries one tensor from the first usable URL, so extra outputs live in that JSON. task_id is the support-ticket receipt, raw_json is the full provider response, and credits_consumed / credits_left are the spend, also flashed on the node as a receipt after each run.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt

Then restart ComfyUI and set your key once at Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. It's validated against KIE before it replaces anything, and afterwards you only see a masked fingerprint and a CONNECTED line. Headless installs can use the KIE_API_KEY environment variable, which takes priority. Requirements are requests, Pillow, numpy, PyYAML - no model files, no CUDA. The README ships a Windows one-click installer plus ZIPs in dist/, but says Registry/Manager publication is "prepared" rather than done; if Manager can't find the pack, clone it.

Where people get burned

Reference images leave your machine. This node's job is uploading a person's photo to a third party. That's the design, and it's the tradeoff you accept for not running the model yourself.

Consistency is the model's call, not a lock. A reference image plus a prompt is not identity preservation. It works well and drifts on hard changes of pose, angle or lighting - the pack's own character tooling says as much.

Batch order is part of your prompt. When you wire several images into input_urls, describe them in the order you wired them, or the model guesses which is which.

Empty node menu on a fresh install. Most nodes get built during the first catalog sync. Restart once, or run the pack's Refresh Model Catalog node.

Don't retry a timed-out job without checking. The charge happens on submission, not on your call succeeding.

CategoryKIE Next/Image/OpenAI/GPT Image

Inputs (6)

NameTypeDefaultDescription
input_urlsIMAGE—
promptSTRINGEdit the image to dress the woman using the provided clothing images. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on.A text description of the image you want to generate
aspect_ratioCOMBO3:2Width-height ratio of the image, determining its visual form.
qualityCOMBOmediumQuality: medium=balanced, high=slow/detailed.
timeout_secondsoptINT120030–7200—
callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.

Outputs (7)

NameTypeDescription
imageIMAGE—
urlSTRING—
all_urls_jsonSTRING—
task_idSTRING—
raw_jsonSTRING—
credits_consumedFLOAT—
credits_leftFLOAT—