Claude Opus 5
The One Claude Node That's There on Day One
- text
- raw_json
- credits_consumed
- usage_json
- credits_left
Most of this pack's nodes only exist after the first catalog sync has read KIE's documentation index. Claude Opus 5 doesn't wait - it's in the bundled offline bootstrap, so it's sitting in your node menu the moment ComfyUI comes up, before any network call has happened. If you're going to explore the LLM side of this pack, start here, because here is guaranteed to be there.
What you'd use it for
Same as every Claude node here: text that goes upstream of generation. Structured prompt writing, batch rewriting, scene notes into a coherent paragraph, turning a rough idea into something a Flux/Z-Image/Klein encoder will respond to. It's not a text encoder, it doesn't condition your sampler, and it doesn't run on your GPU - the model lives on someone else's hardware and you pay per call. llm-in-comfyui.md is the doc to read if that distinction isn't yet automatic.
Why the API path at all? Two reasons, and neither is quality. First, convenience: no Ollama server, no GGUF download, no VRAM budget shared with your diffusion model. Second, price: people route to KIE specifically because the marketplace undercuts the official Partner Nodes - one node-pack author measured KIE's Nano Banana Pro around $0.09–0.12/image against $0.15–0.30 through Comfy's native node, and called out throwing $10 at KIE and generating a lot with it. What you give up is everything the local path buys: it's censored at the provider, it's metered per call, and your prompt leaves the machine.
How it works
The class is generated from KIE's documented Claude page (bootstrap record: model claude-opus-5, endpoint /claude/v1/messages), and it builds an Anthropic-shaped request: model, messages, stream, max_tokens, plus optional system, tools and thinkingFlag, POSTed to KIE's API. Authenticated raw requests are restricted to KIE-owned hosts, so a rogue endpoint string can't siphon your key.
Details that matter in practice:
history_jsonis the messages array, parsed from JSON and sent as-is.promptis appended as the final user turn. Multi-turn = prior turns in history, current question in prompt.thinkingbecomesthinkingFlag, KIE's spelling - not Anthropic's budgeted thinking object.expert_override_jsonmerges last and can override anything, which is the honest escape hatch for fields newer than the pack.- Each run appends
credits_leftand rewritescredits_consumedwith the real spend, falling back to the before/after balance difference when the task metadata doesn't report consumption. The node prints a receipt.
Inputs and outputs
Required: prompt. Optional: system_prompt (use it - this is your format contract), stream, tools_json, history_json, max_tokens (default 4096, ceiling 131072), thinking, expert_override_json.
Outputs: text - wire to a text-encode node, another KIE model's prompt socket, or a Suno prompt. raw_json for forensics, usage_json for token counts, credits_consumed and credits_left as floats.
No IMAGE socket on Claude nodes: multimodal goes through history_json/expert_override_json, with the image uploaded first via KIE • Upload Image.
Install
ComfyUI Manager → ComfyUI-KIE-Nodes-Next. Registry publishing is described as prepared rather than shipped, so if Manager finds nothing:
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, then Settings → KIE.ai Nodes Next → Connection, paste your key, look for the masked fingerprint and CONNECTED row. KIE_API_KEY overrides for headless installs. Only deps are requests/Pillow/numpy/PyYAML; Python 3.10+.
Common issues
The first-launch catalog sync reloads your UI. Expected: the pack reads KIE's docs index, expands the model library beyond the bootstrap list, and reloads the frontend once. Then it checks for catalog changes at most every 24 hours. If KIE's docs are down, the cached library keeps working.
"No KIE API key configured." The client couldn't resolve a saved key or KIE_API_KEY. Fix in Settings; don't paste the key into the graph - the whole point of the design is that the full key is backend-only and never lands in workflow JSON.
Output looks like chat, not prompt. Pull the preamble out with system_prompt. A model that writes "Here's your enhanced prompt:" is doing exactly what it was asked to do, which is nothing you specified.
Cost creep. Every test is a billed call and the receipt is right there on the node. If you're iterating dozens of times, a local uncensored model in the graph is free per call and doesn't filter - keep the Opus node for the runs where the quality actually shows.
You're trusting a small, unvetted pack with a credential. That's the category's standing risk, and this one has essentially no community footprint - the Kie.ai chatter in the wild is about a different pack entirely. The code's credential handling is genuinely careful (validated before overwrite, masked fingerprint to the frontend, restrictive file permissions), but read it yourself and use a key you don't share with anything else.
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 | — |