Nodes/KIE.ai Nodes Next/Claude Haiku 5.5
ComfyUI Node

Claude Haiku 5.5

The cheap text step you'll actually leave switched on

By felipederosilva·Created 2 months ago·Updated 5 days ago· 3
Claude Haiku 5.5
    • text
    • raw_json
    • credits_consumed
    • usage_json
    • credits_left
    ◄prompt►
    ◄system_prompt►
    ◄streamfalse►
    ◄tools_json[]►
    ◄history_json[]►
    ◄max_tokens4096►
    ◄thinkingfalse►
    ◄expert_override_json{}►

    Prompt rewriting is the most common LLM job in a ComfyUI graph, and it's the one where a frontier model is overkill. You're not asking for an essay. You're asking for a comma-separated description that fits a schema, or a JSON storyboard, or a three-line shot list - short, structured, obedient output. Haiku 5.5 is the Claude tier built for exactly that shape of task: fast enough that a graph doesn't feel stalled, cheap enough that you stop thinking about per-call cost.

    That's the whole pitch. If you've been avoiding putting an LLM in your workflow because it felt like adding a subscription to a hobby, this is the node that makes the objection mostly go away.

    What it actually does

    KIE exposes Claude through its own endpoint, and the pack turns each catalog entry into its own node - so the model ID is fixed (claude-haiku-5-5) and it posts to /claude/v1/messages. Your history_json array is passed as the conversation, prompt is appended as the last user message, and system_prompt becomes the request's system field rather than a fake first message. The reply text is pulled out of the response and returned as one plain STRING.

    Worth flagging early: the Claude nodes have no image input. Multimodal payloads have to be assembled by hand in history_json. So "caption this render" isn't this node's job; that's a job for a node with an images socket, or for a local captioner.

    Inputs worth setting

    • prompt - required. Your instruction.
    • system_prompt - the real control surface. "Return only the prompt text. No preamble, no quotes, no markdown." You will be amazed how much of the "LLM output is dirty" complaint is a missing system prompt.
    • max_tokens - 4096 default, 131072 max. Haiku will happily stop early at a low value; if your JSON gets truncated and won't parse downstream, raise this before blaming the model.
    • history_json - leave as [] for one-shot use. That's the right default in a graph; conversation state mostly just costs tokens.
    • thinking - boolean, off by default, keep it off here. A reasoning pass on a rewrite job is paying for deliberation you don't need, which is the exact trap the KB calls out about reasoner-class models in this niche.
    • tools_json, stream, expert_override_json - plumbing. Streaming still returns one finished string, so it gains you nothing in ComfyUI.

    Outputs: text for your downstream node, and raw_json, usage_json, credits_consumed, credits_left for accounting. The node also shows credits spent and the live balance on its face after a run, which is a nicer way to keep an eye on spend than refreshing a web dashboard.

    Installing

    It's one pack, so this is the same three lines for every KIE node you'll try:

    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
    

    ComfyUI Manager users can search "KIE.ai Nodes Next". The dependencies are requests, Pillow, numpy, PyYAML - no CUDA anything, no model files. On first launch the pack syncs KIE's documentation index and builds the node library from it, reloading the frontend once; if a node you expect isn't in the menu, that sync is the thing to wait for (or force: the pack exposes a catalog refresh command for exactly this).

    Then paste your KIE key once in Settings → KIE.ai Nodes Next → Connection. It's checked against KIE before it's saved, and it lives outside your workflow file. There's no environment-variable path by design, so don't set KIE_API_KEY and expect it to work.

    The gotchas, honestly

    Bad JSON in tools_json, history_json or expert_override_json fails locally before any money moves - the pack parses those fields first. That's a feature: you get a plain error instead of a provider rejection.

    Empty prompt does the same. The preflight check is deliberately strict.

    And the big one: the call leaves your machine. Prompts go to KIE, which forwards them to Anthropic, and whoever is on the other end applies their own content policy. You cannot abliterate a hosted model. For anything the filter would refuse, the local path isn't just cheaper, it's the only option.

    CategoryKIE Next/LLM/Claude/Haiku

    Inputs (8)

    NameTypeDefaultDescription
    promptSTRINGUser prompt / message.
    system_promptoptSTRING—
    streamoptBOOLEANfalse—
    tools_jsonoptSTRING[]Optional function/tool definitions supported by this model endpoint.
    history_jsonoptSTRING[]Optional prior message/input array as JSON.
    max_tokensoptINT40961–131072—
    thinkingoptBOOLEANfalse—
    expert_override_jsonoptSTRING{}Expert-only request overrides. Normal use does not require this.

    Outputs (5)

    NameTypeDescription
    textSTRING—
    raw_jsonSTRING—
    credits_consumedFLOAT—
    usage_jsonSTRING—
    credits_leftFLOAT—