GPT 5.4 (response)
Same Wrapper, Different API Underneath
- images
- text
- raw_json
- credits_consumed
- usage_json
- credits_left
What the "(response)" in the name means
It's not decoration. Chat-completions endpoints take a messages array; the "responses" style of API takes an input array instead, and the two aren't interchangeable on the wire. KIE documents both, so this pack generates a node for each - and the ones built from the responses operations carry "(response)" in the display name so you can tell them apart in the menu.
Functionally, from inside ComfyUI, GPT 5.4 (response) is the same tool as its siblings: text in, text out, over the network, no local model, paid per call, living in KIE Next/LLM/OpenAI/GPT. What changes is which OpenAI generation you're renting and which request envelope gets built for you. You'll never write that envelope by hand unless you go near expert_override_json.
Where it earns its place: prompt expansion for a local sampler, structured output for a downstream parser, captioning an image you wired in, or a reasoning step in a bigger graph. Where it doesn't: anything a local 8B model could do for free - and for plain prompt rewriting, that's most of it.
How the pack runs it
Node classes are generated at startup from KIE's API docs, so the class name is derived rather than authored: KIE_Next_GPT_5_4_response_f46af2de, with the trailing hash computed from the operation and its model. That keeps IDs stable as the pack versions.
This is a direct transport node, unlike the pack's image nodes that create a task and poll for a result. One HTTP request goes out to the endpoint KIE documents for this model, the response comes back, and the pack extracts the assistant text from it. If the endpoint answers as a server-sent event stream, the client normalises those events first - though the text extractor reassembles chunks by walking the payload, so leaving stream off tends to give you cleaner output than turning it on.
Inputs
prompt is required - your user message, multiline.
system_prompt sets behaviour and is the highest-leverage field of the lot. "Output only the final prompt. No preamble, no explanation, no markdown." instantly turns this node from chatty assistant into a usable generator.
reasoning_effort is low, medium, high, or xhigh, defaulting to high. Drop it for prompt work: the difference between medium and xhigh on "rewrite this into a cinematic prompt" is mostly latency and bill.
max_output_tokens ranges from 1 to 131072 with a default of 4096. Now that you have a hard ceiling, remember the failure mode: too small and your prompt gets cut off mid-sentence with no error, just a shorter string. Raise it when you're asking for long structured output like a shot list.
images is an optional IMAGE socket; the pack uploads whatever you connect and passes the URL through, which makes this usable as a captioner or as a reviewer of a generation you didn't like.
web_search toggles KIE's web-search tool where the endpoint supports it - genuinely useful for prompts about real things ("this camera, this era, this product"). tools_json takes tool/function definitions if you're building something agentic; [] is right otherwise.
history_json is your continuity. The node keeps no state between executions - it doesn't remember the last run - so a conversation only exists if you keep feeding the prior messages back in as JSON. Malformed JSON here fails the run rather than silently degrading.
expert_override_json merges raw JSON into the request. Escape hatch for fields the pack doesn't expose; leave it at {}.
Outputs
text is the output for your graph. raw_json is the full provider response - the first thing to open when the text looks wrong. usage_json carries token accounting, which is how you decide whether a reasoning setting is buying anything. credits_consumed and credits_left give you the spend, and both render on the node face as a receipt after a successful run.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt
Restart ComfyUI and set your key once at Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. The pack validates the key against KIE before replacing a working one, and afterwards shows only a masked fingerprint. Servers and headless boxes can use KIE_API_KEY instead, which takes priority. Dependencies are requests, Pillow, numpy, PyYAML - the LLM nodes add nothing beyond that. The README's preferred routes are the Windows one-click installer and the ZIPs in dist/; Registry/Manager publication is described as "prepared" rather than shipped, so if Manager searches don't surface the pack, clone it.
Choosing between the GPT nodes
You'll find several near-identical nodes in this folder - GPT 5.2, 5.4, 5.5, the 5.6 variants, the 6 family, Codex. The controls are largely the same set, and the pack derives them from the same documentation, so the honest way to choose is empirical: run the same awkward prompt through two of them, then compare the text, the usage_json token counts, and credits_consumed. That's three numbers per call and a real answer, instead of trusting a name.
Two structural differences do matter. The "response"-style nodes expose max_output_tokens; the plain chat-style GPT 5.2 doesn't. And the pack's offline bootstrap ships only a couple of GPT-family nodes (GPT 5.6 Sol among them), so a given GPT node may not appear in your menu until the first live catalog sync runs - restart once if it's missing.
Gotchas
Every execution is billed. Wire this into a loop or a batch and you're paying per iteration.
It filters, and you can't patch it. Hosted policy applies, there are no weights to edit, and no reseller setting changes that.
Give it a job it's good at. These are language models, not samplers - the win is a better prompt, a parsed JSON payload, or a caption, not the image itself.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | User prompt / message. | |
| system_promptopt | STRING | — | |
| streamopt | BOOLEAN | false | — |
| tools_jsonopt | STRING | [] | Optional function/tool definitions supported by this model endpoint. |
| history_jsonopt | STRING | [] | Optional prior message/input array as JSON. |
| imagesopt | IMAGE | — | |
| reasoning_effortopt | COMBO | high | 4 options: low, medium, high, xhigh |
| web_searchopt | BOOLEAN | false | Use KIE's web-search tool where this endpoint supports it. |
| max_output_tokensopt | INT | 40961–131072 | — |
| expert_override_jsonopt | STRING | {} | Expert-only request overrides. Normal use does not require this. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| usage_json | STRING | — |
| credits_left | FLOAT | — |