Claude Opus 5.5
A text worker you pay per call
- text
- raw_json
- credits_consumed
- usage_json
- credits_left
What it is
An LLM node. It runs no model on your GPU - it posts a chat request to KIE.ai, which relays it to Claude Opus 5.5, and returns the text as a STRING. In a Comfy graph that normally means one of three jobs: rewriting your loose description into a structured video prompt, writing dialogue or narration for a TTS node, or classifying/parsing something into JSON you can feed downstream.
The honest framing first, because it decides whether you should use this at all: for prompt enhancement, a local 8B on your own card is free, offline, and doesn't filter. You reach for a frontier API call when you want genuinely better long-form writing or reasoning and you don't care about either of those. Opus 5.5 is the top of the Claude line, so it's the wrong default for "turn this into comma-separated tags" and the right one for "write me twelve seconds of dialogue that fits this story beat."
How it works
The node is generated from KIE's own API documentation, and the mechanism is visible in the source: it builds a payload with model: "claude-opus-5-5" and POSTs to KIE's /claude/v1/messages endpoint. Your prompt becomes a single user message appended to whatever's in history_json. system_prompt goes into the request's system field. tools_json goes into tools. Turning on thinking sets thinkingFlag on the request - that's the extended-reasoning switch, and it costs you tokens.
Before it sends anything, it runs a local preflight: prompt must be non-empty, history_json, tools_json and expert_override_json must be valid JSON of the right shape (array of objects for the first two, object for the override), and max_tokens must be 1–131072. Those checks happen locally and upload nothing. That's a real quality-of-life thing - you find out your JSON has a trailing comma before paying for a round trip.
Inputs and outputs
prompt is the only required input. Set max_tokens (default 4096) deliberately; long scripted output truncates silently otherwise. history_json is where multi-turn context lives - an array of {role, content} objects, appended before your prompt. expert_override_json is the escape hatch for a field KIE documented but this node doesn't expose; you shouldn't need it.
Outputs: text (wire that into a prompt input or a TTS node), raw_json (full provider response), usage_json (token accounting), credits_consumed, and credits_left. That balance output is the useful one - it's how you catch a loop burning credits without printing output.
It's text-only here. This node exposes no image input; multimodal Claude payloads have to go through history_json or the override field.
Install
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
Then save your key once: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. It's validated against KIE before overwriting a working key, stored outside the workflow, and shown only as a masked fingerprint. Per the README, environment-variable keys are not supported - the key lives in ComfyUI's user config.
Where people get burned
- "This model's endpoint has not been resolved yet." The node list is built from KIE's docs catalog. If a sync hasn't completed, run the catalog refresh (KIE • Refresh Model Catalog) once and reload.
- Cost surprises. Every execution is a billed call, and an output node downstream forces upstream nodes to run. Drop a
KIE • Review Textin front of anything you're iterating on. - Malformed history.
history_jsonneeds a JSON array of objects; a bare string or a stray newline is a hard error, not a warning. - Expecting a system prompt to survive every endpoint. It does here (
system), but behaviour differs across the families in this pack. - Assuming it's a chat window. There's no memory between runs. If you want continuity, feed the prior turns in yourself.
Inputs (8)
| 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. |
| max_tokensopt | INT | 40961–131072 | — |
| thinkingopt | BOOLEAN | false | — |
| 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 | — |