Nodes/KIE.ai Nodes Next/Claude Fable 5
ComfyUI Node

Claude Fable 5

The text step in your graph, wired and billed

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

    Most people meet this node while looking for something else. They want a smarter prompt, or a script broken into shots, and they find a folder called KIE Next / LLM / Claude / Fable sitting in the add-node menu. What it actually is: a Claude-family chat model, called over KIE's API, that returns plain text straight into your graph. No weights, no VRAM, no model download - just a string that some other node can use.

    The real question isn't "what is Fable 5". It's whether an LLM belongs in your graph at all. Usually it does, for one job: turning your rough idea into the structured prompt your checkpoint actually wants, or turning a finished clip into a description you can feed to the next step. That's the pattern the KB's LLM-in-ComfyUI material is about, and it's mainstream now rather than clever.

    How it works

    The pack generates one node per KIE catalog entry, so this isn't a generic "API node" with a model dropdown - the model is baked in (claude-fable-5) and it posts to KIE's Claude endpoint, /claude/v1/messages. Your history_json array is sent as the conversation, your prompt is appended as the final user message, and system_prompt becomes the request's top-level system field rather than a fake message. thinking sets a thinkingFlag on the request. Then the reply's text is scraped out of the response and returned as a single STRING.

    One structural thing worth knowing up front: there is no image socket on the Claude nodes. The adapter keeps plain text first-class; multimodal Claude payloads have to be hand-built through history_json or expert_override_json. If your job is "look at this render and write me a caption", use one of the OpenAI-shaped nodes that do expose images, or a local VLM.

    The inputs you'll actually touch

    • prompt - required, multiline, and the only thing you must fill in.
    • system_prompt - where you put the actual contract: "answer with the prompt only, no preamble, no markdown". This is the difference between usable output and a chatty paragraph you have to hand-edit.
    • max_tokens - 4096 by default, ceiling 131072. If a storyboard gets cut off mid-sentence, this is why, not the model.
    • history_json - a JSON array of prior messages. Leaving it at [] gives you a one-shot call, which is what you want 90% of the time in a graph.
    • tools_json - function/tool definitions, [] by default. Ignore it unless you're building something agentic.
    • thinking - a boolean, no budget control. It costs more and it's slower, and the deliberation doesn't land in text, so treat it as a switch you flip for genuinely hard reasoning, not a default.
    • stream and expert_override_json - leave alone. Streaming still hands you one finished string back, so it buys you nothing inside ComfyUI, and the override field is the maintainer's escape hatch, not a tuning knob.

    Outputs: text (wire it into a prompt widget or a text node), plus raw_json, usage_json, credits_consumed and credits_left for when you want to see what it cost.

    Install and key

    One install covers all twenty-odd KIE nodes you'll end up using:

    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, then Settings -> KIE.ai Nodes Next -> Connection -> paste key
    

    Manager search is "KIE.ai Nodes Next". The pack's Python dependencies are just requests, Pillow, numpy and PyYAML - nothing heavy, nothing that touches your GPU. The key is validated against KIE before it replaces anything, is stored in ComfyUI's user config area with restrictive permissions, and is not written into your workflow JSON.

    Honest caveats

    Two. First, the cost model: every execution is a paid API call, and this node only runs when its text output goes somewhere - a preview text node, a prompt input, whatever. An orphan node in the corner of your graph is free because it never executes.

    Second, the security frame applies to any node like this. A custom node is arbitrary Python with your user's file access at import, and an LLM node is exactly the shape that already shipped credential-stealing malware once in this ecosystem. Widely-used open packs are the sane default; read anything brand new before its first run.

    And the taste call: if all you want is a prompt rewriter, a local abliterated 8B does the job uncensored and free per call. Reach for a hosted Claude tier when the text genuinely needs to be better than that - scripts, structured JSON, careful rewrite of your own notes - and accept that it filters.

    CategoryKIE Next/LLM/Claude/Fable

    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—