ComfyUI Node

Grok 4.5

What reasoning_effort really buys you (and when it's wasted)

By felipederosilva·Created about a month ago·Updated a day ago· 3
Grok 4.5
  • 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 it is

Grok 4.5 as a single ComfyUI node that returns text. Category: KIE Next / LLM / xAI / Grok. Same shape as its siblings 4.3, 4.6 and 4.7 - the widgets are identical, which tells you something useful: the pack generated all four from KIE's own documentation for each version, and KIE documents the same request surface for the whole family. When the schemas are the same, the only thing you're choosing between is the model itself and what KIE charges for it.

So the interesting question isn't "what are this node's inputs" - it's the one widget that actually changes the answer: reasoning_effort.

reasoning_effort, explained without the marketing

The widget offers low, medium, high and xhigh, defaulting to high. In the request it becomes a reasoning-effort hint to the model - spend more internal deliberation before answering. On the endpoint KIE exposes for Grok, this is a real field, not decoration, and the pack sends it with the rest of the payload.

Here's the part worth internalising: in an image workflow, almost nothing you ask an LLM to do benefits from deliberation. "Rewrite this into a 40-word photographic prompt", "describe this shot's lighting in one sentence", "turn these tags into natural language" - those are format-following tasks. A reasoning model spends tokens thinking, and the thinking is what leaks garbage into your output: preambles, "Let me consider the composition…", bullet lists you didn't ask for. Our KB's read on standalone LLM nodes is blunt about this, and it matches what you'll see in practice.

So the sane default for this node in a ComfyUI graph is low. Bump to high when you're genuinely asking for judgement - writing a shot list, choosing between two prompt phrasings, drafting dialogue that has to be consistent across shots - and expect to pay for the extra tokens. xhigh exists; for prompt-rewriting it's money on fire.

The rest of the inputs

  • prompt (required) - the message. Multiline, opens tall, which the pack does deliberately for generation and LLM nodes.
  • system_prompt - sent as top-level instructions on the Responses-style endpoint. This is your formatting enforcement layer.
  • history_json - a JSON array of earlier input items, so a node wired into a loop can keep context. Defaults to [].
  • images - an IMAGE socket. Connect one and it's uploaded (as PNG) and sent as an image input, making this a vision chat node, not just a text one.
  • web_search - toggles KIE's web-search tool where the endpoint supports it. Off by default; on when you want the model to know something recent instead of hallucinating it.
  • max_output_tokens - 4096 by default, up to 131072. Long-form responses and reasoning traces both count against it.
  • expert_override_json - raw merge into the request. Normal use: leave it {}.

Outputs

text is the answer. raw_json is the whole provider response, and it's the first place to look when text is empty - that usually means the text sat somewhere the scraper didn't expect. usage_json is token accounting, credits_consumed is what the run cost, credits_left is your balance as KIE reported it after the call. Both floats also render on the node itself after a successful run, which is honestly the feature I use most: it's the only place cost is visible without opening a billing page.

Install

ComfyUI Manager → KIE.ai Nodes Next, or:

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

Dependencies are requests, Pillow, numpy and PyYAML - nothing heavy, no weights to download, because inference happens on KIE's side. Restart, then Settings → KIE.ai Nodes Next → Connection → paste your KIE.ai API key. It's validated before it replaces anything, stored backend-side, and shown to you afterwards only as a masked fingerprint; KIE_API_KEY in the environment also works and takes priority.

Gotchas

  • First launch rebuilds the menu. The pack fetches KIE's API docs index and generates its nodes from it, sometimes reloading the ComfyUI frontend once. A missing Grok 4.5 node is almost always "catalog hasn't synced", not a broken install.
  • Same node, different price. Since 4.5's schema matches the other Grok versions, swapping the node is the cheapest A/B test in this whole pack. Duplicate the graph, swap the LLM node, keep the rest wired identically.
  • Reasoning tokens bill like output tokens. high on a trivial rewrite is the most common way people make a two-cent job into a ten-cent one.
  • No key → No KIE API key configured. Not a graph problem. Do the Settings step.
  • It's a hosted model with a filter. Anything local-only and uncensored is the job for an Ollama node instead; you can't patch xAI's refusals out of a remote endpoint.
CategoryKIE Next/LLM/xAI/Grok

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—