GPT 6 Sol
The Frontier Node, and What It Costs You Off-Screen
- images
- text
- raw_json
- credits_consumed
- usage_json
- credits_left
What it is
A GPT 6-family text model, called through KIE.ai, exposed as one node in KIE Next/LLM/OpenAI/GPT. Nothing runs locally - no weights, no VRAM, no download - and there's no free tier, so each execution is a paid request.
It's the top of this pack's GPT ladder, which is worth saying plainly: the top of the ladder is not automatically where you want to be. For "turn this into a photography prompt," a model several generations older produces the same sentence for less money and less waiting. Sol's value shows up when the task is genuinely hard - long multi-constraint briefs, output that must conform to a schema, decisions that require reasoning about what a shot needs rather than just phrasing it well. If you can't articulate why you need the frontier model, you probably don't.
Where a text node helps a pixel workflow
Three jobs that come up constantly. Prompt expansion: a scrap of an idea becomes a full prompt with camera, light and mood, wired straight into a CLIP text encode. Captioning: connect an image to the images input and get a description back for a dataset or a LoRA training run. Structure: ask for a JSON array of variations or a shot list and let a parser node fan it out into a batch of local generations.
The alternative is a local model, and it's a good alternative. An 8B on your own GPU is free per call, offline and unfiltered. The trade you're making with Sol is writing quality and zero VRAM against money, latency, and a content policy you don't control.
How it works
Node classes are generated at startup from KIE's published API documentation, hence the derived identifier KIE_Next_GPT_6_Sol_920e6c67 - a slug plus an eight-character hash of the operation and model, stable enough that saved workflows keep resolving across pack versions.
This family uses direct transport: a single HTTP call to the documented endpoint, one response back. That's the opposite of the pack's image and video nodes, which create a task and poll until it completes. The assistant's text is extracted into a STRING; the full response is kept in raw_json for when you need to see what actually came back. If the endpoint answers with a server-sent event stream instead of one JSON document, the client normalises that too - though for clean text output, leaving stream off is the safer default.
Controls
prompt is required. system_prompt shapes the output more than the model choice does; "reply with the prompt only" is the single highest-value line you'll write all week.
reasoning_effort - low, medium, high, xhigh - defaults to high. Drop to medium for rewriting and watch your latency fall. max_output_tokens is 1 to 131072 with a 4096 default, and it truncates silently when you ask for long structured output and forget to raise it.
images takes one optional image, uploaded for you. web_search enables KIE's web-search tool where the endpoint supports it. tools_json holds function definitions; history_json holds prior messages as JSON, which is your only continuity option since the node keeps no state between runs. expert_override_json is the escape hatch that merges raw JSON into the request body - useful the day KIE's documentation and the model disagree and you need a field the pack's form doesn't expose.
Outputs
text for the graph, raw_json for debugging, usage_json for token accounting (the number that tells you whether xhigh was worth it), and credits_consumed / credits_left for spend - also drawn on the node as a receipt after each 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 the one-time key step: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. The key is validated against KIE before it replaces anything, stays on the backend, and is displayed only as a masked fingerprint. Servers and headless installs can use KIE_API_KEY, which takes priority. Requirements are requests, Pillow, numpy, PyYAML. The README offers a Windows one-click installer and ZIP builds in dist/; Registry/Manager publication is described as "prepared" rather than released, so if Manager's search finds nothing, clone it.
The part outside the canvas
A node whose entire job is to send your text to a server is, structurally, the shape of thing that has been weaponized in this ecosystem before - a credential plus a routine network call, where the suspicious behaviour is the intended behaviour. That's an argument for caring where a fresh custom node came from, not an argument against API nodes as a category.
It also means the practical limits are permanent. Your prompts and any image you pass in leave the machine. The provider's filter applies and there are no weights to edit, so nothing local can bypass it. And KIE's catalogue moves - models get added, renamed and retired, and this pack rebuilds its node list from that catalogue, so a missing node usually means the reseller changed something rather than a broken install.
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 | — |