Grok 4.3
A cheap brain for the boring half of your workflow
- images
- text
- raw_json
- credits_consumed
- usage_json
- credits_left
What it is
An xAI Grok chat model, delivered as a node that spits out plain STRING text. It never touches your VRAM and it doesn't generate images - it writes. In the KIE pack it sits at KIE Next / LLM / xAI / Grok, one node per version, so 4.3 doesn't share a dropdown with 4.5, 4.6 or 4.7.
The honest use case for a text node in an image graph is the least glamorous one: turning a rough idea into a structured prompt, or a batch of captions into something you can paste into a CLIPTextEncode. That's the job the LLM-in-the-graph pattern won years ago, and it's a job that wants a model which follows a format and stops - not the biggest model on the menu. 4.3 is the elder of this pack's four Grok versions, which in API reseller terms usually means the cheapest per token, and cheap is exactly what you want for "rewrite this sentence in the style of a Flux prompt".
How it works
KIE exposes Grok here on the Responses-style endpoint, and the pack handles that shape: your prompt becomes an input_text item, system_prompt is sent as top-level instructions, and history_json is prepended as prior input items so you can continue a conversation across runs. Output text is scraped out of the response by walking the JSON for text fields, so what lands on text is the model's answer, not the envelope around it.
Like every node in this pack, the call happens while ComfyUI waits - submit, poll, then hand you a result. There is no streaming into the node even though the option exists.
Inputs
Only prompt is required. The four optional widgets worth understanding:
- system_prompt - the standing instruction. "You write terse photographic prompts. No preamble, no lists, output one paragraph" is worth more here than any amount of prompt tinkering, because a chat model's default habit is to answer in chat about your request instead of doing it.
- history_json - a JSON array of prior messages. Populate it and you get a persistent conversation; leave it
[]and each run starts cold. - tools_json - optional function/tool definitions. The
[]default is what you want 99% of the time; the endpoint also documents a web-search tool shape, and the node's own web_search toggle is the easy way to switch that on. - expert_override_json - an escape hatch that merges arbitrary keys into the request body. Leave it at
{}unless the provider docs changed before the pack synced.
Outputs
text is the string you wire forward - into a CLIPTextEncode, a string-concat node, or a file. raw_json is the full provider response, which is where you look when the text comes back empty and you want to know why. usage_json carries the token accounting, and credits_consumed / credits_left are floats, also displayed on the node after a successful run. That little credit readout is more useful than it sounds: it's how you notice a prompt-rewriting node quietly costing more than the image did.
A wiring note
Text nodes have no idea what a ComfyUI graph is, so the failure mode is never an exception - it's a beautiful paragraph of LLM prose arriving in your conditioning. Constrain the output in system_prompt ("one paragraph, no bullet points, no preamble") and check the first few captions by hand before you leave a batch running.
Install
Manager → KIE.ai Nodes Next, or git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next into ComfyUI/custom_nodes, install requirements.txt in ComfyUI's Python (it's only requests, Pillow, numpy, PyYAML), restart. Then Settings → KIE.ai Nodes Next → Connection and paste your KIE.ai key once. A headless server can skip the settings dance with the KIE_API_KEY environment variable.
Two things people miss on a fresh install: the pack reads KIE's docs index on startup and can reload the frontend once while it rebuilds the node library, and it re-checks that catalog roughly daily. So a node that isn't in your menu yet usually means "wait for or force a catalog refresh", not "reinstall the pack".
Gotchas
- No key, no node. You get
No KIE API key configured...- that's the pack telling you the one-time Settings step was skipped. - Version numbers are KIE's, and they churn. 4.3 exists as a node because KIE's catalog listed it when the pack synced. When a provider retires a version, the node can start failing while everything else in your graph stays fine.
- It reasons by default.
reasoning_effortdefaults tohigh, which for a "rewrite this prompt" job is spending tokens thinking about a task that doesn't need thinking. Setlowfor structure-and-stop work; same paragraph, smaller bill. - It filters. Hosted model behind a reseller - whatever xAI refuses, the node refuses, and there's no local weights file to abliterate.
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 | — |