GPT 6.1 Sol
Images in, text out, with a reasoning dial that costs money
- images
- text
- raw_json
- credits_consumed
- usage_json
- credits_left
The most useful LLM node in this pack for image people is the one with an IMAGE socket. GPT 6.1 Sol takes a prompt plus up to a batch of images, thinks about it at whatever effort level you pick, and hands back text. That's the "look at my render and tell me what to change" step - or the reverse, "write me a prompt that would produce this" - and it's the one LLM job that actually improves your images rather than just rewording them.
It's also the node most likely to quietly cost you money, because reasoning_effort defaults to high and nobody reads that widget before hitting run.
How the request is built
KIE exposes this model on an OpenAI responses-style endpoint. The pack packages your prompt as an input_text content item, uploads anything connected to images (re-encoded to PNG first, then hosted by KIE) and attaches each as an input_image item, then appends the request as a user turn after your history_json items. system_prompt maps to the request's instructions field, reasoning_effort maps to reasoning.effort, max_output_tokens caps the reply, and web_search swaps in KIE's web-search tool. The assistant text is then extracted into text.
Because your images are uploaded before the call, treat this as "sending your files to a server", not "asking a model locally". That's fine for a finished render, less fine for anything you consider private.
The inputs
- prompt - required. Write it as an instruction and a spec: what to look at, what format to answer in.
- images - optional, one socket, batch-friendly. Multiple images come in as multiple inputs, which is how you get comparison answers ("which of these two has better hands").
- reasoning_effort -
low,medium,high,xhigh; defaulthigh. Turn it down for descriptions, up for structured analysis. This is the cost/latency dial that matters most. - max_output_tokens - 4096 default, 131072 max. Bump it for long JSON.
- web_search - off. Enable only when the answer needs something current; it competes with
tools_jsonfor the tools slot. - system_prompt -
instructions. Where you say "reply with only the prompt". - history_json, tools_json, stream, expert_override_json - plumbing; defaults are correct for a one-shot graph node.
Outputs: text plus raw_json, usage_json, credits_consumed and credits_left. usage_json is the one to read when you're wondering why a caption cost what it did.
Install and key
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next && pip install -r requirements.txt
# restart ComfyUI
Manager search "KIE.ai Nodes Next" does the same thing. Dependencies: requests, Pillow, numpy, PyYAML - no weight files, no VRAM, so installing this pack costs you nothing but disk. Then one key paste in Settings → KIE.ai Nodes Next → Connection; the pack validates it against KIE before saving, keeps only a masked fingerprint visible, and never writes the key into your workflow.
Traps
The node won't execute unless text feeds something downstream - it's not an output node, so a floating GPT node is skipped with no error and no charge. Confusing the first time.
Local preflight rejects empty prompts, broken JSON in the history/tools/override fields, and out-of-range numbers before any call. What it can't check is the image itself: dimensions, colour space and content are provider-side, so a rejection there arrives as the provider's own message.
And the strategic question: do you need a reasoning model here at all? For "make my prompt longer", no - a local abliterated 8B does it free and uncensored. Use this node when the task is genuinely hard: reading a render and diagnosing what's wrong with it, producing strict JSON for the next node, or answering a question that needs current information. Otherwise you're paying frontier prices for adjectives.
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 | — |