Nodes/KIE.ai Nodes Next/GPT 5.5 (response)
ComfyUI Node

GPT 5.5 (response)

The Middle Rung, and How to Tell If You Need It

By felipederosilva·Created about a month ago·Updated about 22 hours ago· 3
GPT 5.5 (response)
  • images
  • text
  • raw_json
  • credits_consumed
  • usage_json
  • credits_left
◄prompt►
◄system_prompt►
◄streamfalse►
◄tools_json[]►
◄history_json[]►
◄reasoning_efforthigh►
◄web_searchfalse►
◄max_output_tokens4096►
◄expert_override_json{}►

What you're looking at

A text-in, text-out node for GPT 5.5, called through KIE's API, no local weights involved. It sits in KIE Next/LLM/OpenAI/GPT alongside four or five near-identical siblings, and the "(response)" suffix tells you something real: this node was generated from KIE's responses-style API documentation rather than a chat-completions operation. Different request envelope, different generation, same controls in the ComfyUI form.

In a workflow it's a text stage. Prompt expansion before a local sampler. Caption generation from an image you wired in. Structured output - a shot list, a JSON prompt object, a batch of variations - that a downstream node parses. Anything that needs better English than your own and faster than copying into a chat window.

The uncomfortable truth from the local-first side of this ecosystem: prompt enhancement is the one LLM job a small local model does perfectly well. An 8B abliterated model on your card is free, instant, offline and unfiltered. You reach for the hosted path when the writing quality genuinely matters - long-form prompt engineering, awkward multi-constraint briefs, structured output that has to parse first try - and accept per-call cost, latency, and someone else's content filter.

How the pack drives it

The pack builds nodes from KIE's API documentation at startup. The class name is generated from the operation, hence KIE_Next_GPT_5_5_response_e16d64a3 with its eight-character hash; the hash comes from the operation and model, so your saved workflows keep pointing at the same class across pack releases.

Transport here is direct - one HTTP request to the documented endpoint, one response back - not the create-task-then-poll dance the pack uses for image and video models. The pack pulls the assistant's text out of the response and returns it as a STRING, keeping the untouched response in raw_json. Streamed server-sent events get normalised if the endpoint answers that way, but the extractor reassembles text by collecting content chunks, so a streamed run can come back with the answer broken across lines. Leave stream off unless you specifically want to watch progress.

The inputs that matter

prompt is required and multiline. system_prompt is where you get discipline - "reply with the prompt only, no commentary" is worth more than any model upgrade.

reasoning_effort (low, medium, high, xhigh) defaults to high. For prompt rewriting that's usually overkill: medium tends to produce the same sentence sooner and cheaper. Try low on a prompt you're rewriting mechanically and high on one where the model has to reason about composition, lighting and constraint conflicts.

max_output_tokens runs from 1 to 131072, defaulting to 4096. Too low and your output is silently truncated mid-sentence - no error, just a shorter string. Raise it when you ask for long structured output.

images is an optional single IMAGE socket; the pack uploads what you connect and hands the URL to the endpoint. web_search toggles KIE's web-search tool where the endpoint supports it, useful when a prompt depends on a real product, place or camera. tools_json is for tool/function definitions, [] otherwise.

history_json is valid JSON holding prior messages. There's no memory between runs - every execution starts clean - so continuity is something you maintain by hand.

expert_override_json merges raw JSON into the request body when you need a field the pack doesn't expose. {} is the correct value unless you're debugging.

What comes out

text is the wireable string. raw_json is the full provider response - the first place to look when something's off. usage_json is token accounting, which is how you find out whether xhigh bought you anything. credits_consumed and credits_left report spend, and both appear as an on-node 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. Then one-time key setup at Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key - validated before it's stored, masked afterwards. KIE_API_KEY in the environment wins over the saved key on headless boxes. Dependencies are requests, Pillow, numpy, PyYAML; LLM nodes need nothing extra. Manager/Registry install is described in the README as "prepared" rather than published, so clone it (or use a ZIP from dist/) if Manager's search finds nothing.

Deciding between the GPT siblings

The pack generates this whole family from the same documentation, so their input forms look nearly identical. Don't pick by name - measure. Run one awkward prompt through two models, then compare three things: the returned text, the token counts in usage_json, and credits_consumed. If the cheaper model's output is as good, you've just saved yourself a permanent upgrade.

Two things to remember while you're at it. First, every execution is a paid API call, including the ones inside a batch loop you forgot about. Second, the meta-advice: put the prompt work here and the pixels on your GPU. That's the combination that makes an API node worth its cost.

CategoryKIE Next/LLM/OpenAI/GPT

Inputs (10)

NameTypeDefaultDescription
promptSTRINGUser prompt / message.
system_promptoptSTRING—
streamoptBOOLEANfalse—
tools_jsonoptSTRING[]Optional function/tool definitions supported by this model endpoint.
history_jsonoptSTRING[]Optional prior message/input array as JSON.
imagesoptIMAGE—
reasoning_effortoptCOMBOhigh4 options: low, medium, high, xhigh
web_searchoptBOOLEANfalseUse KIE's web-search tool where this endpoint supports it.
max_output_tokensoptINT40961–131072—
expert_override_jsonoptSTRING{}Expert-only request overrides. Normal use does not require this.

Outputs (5)

NameTypeDescription
textSTRING—
raw_jsonSTRING—
credits_consumedFLOAT—
usage_jsonSTRING—
credits_leftFLOAT—