Nodes/Customizable API Call Nodes by BillBum/LLM StreamResponse Node (Old)
ComfyUI Node

LLM StreamResponse Node (Old)

The legacy streaming LLM node — it works, but the pack moved on

By AhBumm·Created 2 years ago·Updated 3 months ago· 11
LLM StreamResponse Node (Old)
    • LLM ANSWERS
    • seed
    • model
    • api_url
    • api_key
    prompt
    seed0
    modelqwq-32b
    api_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1
    api_keyYOUR_API_KEY_HERE
    temperature0.00
    enable_thinkingfalse
    system_prompt

    The display name says it all: LLM StreamResponse Node (Old). This is the predecessor node in the BillBum pack - the streaming chat-LLM wrapper from before the pack settled on its current design. It still works, it's still exported, and if you've got an old workflow that references it, it'll keep running. But if you're starting fresh, the pack's current streaming node ("API Node for Stream Response LLMs") is the better pick. Knowing what this one does helps you understand both.

    The interesting default here is the target: it points at DashScope - Alibaba's https://dashscope.aliyuncs.com/compatible-mode/v1 - with qwq-32b as the model. qwq is Qwen's reasoning model, which is why there's an enable_thinking toggle. This node's DNA is the Chinese-ecosystem API scene (DashScope, Doubao, tu-zi), which is a running theme in the pack.

    How it works

    It builds an OpenAI client from api_url/api_key and calls chat.completions.create() with stream=True. As the stream arrives it accumulates the delta.content from each chunk into one big string. Two implementation details worth knowing:

    • temperature of exactly 0.0 is treated as "don't send temperature at all" - the default. Anything above 0 gets sent to the API. So if you set it to 0 expecting literal zero-temperature output, the API just uses its own default instead. Minor, but it explains some "why is my output different" confusion.
    • enable_thinking is sent via extra_body - a DashScope/Qwen-style extension that makes reasoning models emit (or suppress) their <think> reasoning. It's passed through as a raw boolean.

    The inputs and outputs that matter

    • prompt (multiline) - your request.
    • system_prompt (multiline) - system instructions.
    • model - qwq-32b default.
    • temperature - 0 to 2, step 0.05.
    • enable_thinking - boolean, on/off for reasoning output.
    • seed - a huge range, seeds the Python RNG for request ordering.
    • api_url / api_key - DashScope-compatible by default; any OpenAI-compatible chat endpoint works.

    Per the schema, outputs are LLM ANSWERS (STRING - the assembled stream), plus seed, model, api_url, and api_key echoed back as STRING/INT so downstream nodes can log or reuse them. In practice the thing you wire onward is LLM ANSWERS.

    Installing it

    Same pack as everything else. ComfyUI Manager → search "billbum" → install, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/AhBumm/ComfyUI_BillBum_APIset_Nodes.git
    cd ComfyUI_BillBum_APIset_Nodes
    pip install -r requirements.txt
    

    Restart ComfyUI. Deps are the usual API stack (openai, requests, tenacity, tiktoken).

    Common issues

    • The default endpoint needs a DashScope key. The api_url is preloaded with Alibaba's compatible-mode endpoint; unless you swap it (or the key), you're talking to a service you may not be registered with. Any OpenAI-compatible chat API works - that's the whole point of the node.
    • enable_thinking isn't universal. It's a DashScope/Qwen extension. Against plain OpenAI or other providers, the extra body field is ignored - no error, just ignored.
    • It's marked Old for a reason. The pack's newer streaming node adds vision input (images in the chat), a system_prompt that's properly optional, and the enable_thinking combo that lets you pass none instead of forcing the field. This node predates all of that. Migration is trivial - same inputs minus the extras.

    If a downloaded workflow drags this node in, it'll run fine. If you're building new, use the current one and only fall back here when a shared workflow demands it.

    CategoryBillBum_API

    Inputs (8)

    NameTypeDefaultDescription
    promptSTRING
    seedINT00–18446744073709550000
    modelSTRINGqwq-32b
    api_urlSTRINGhttps://dashscope.aliyuncs.com/compatible-mode/v1
    api_keySTRINGYOUR_API_KEY_HERE
    temperatureFLOAT0.000–2
    enable_thinkingBOOLEANfalse
    system_promptSTRING

    Outputs (5)

    NameTypeDescription
    LLM ANSWERSSTRING
    seedINT
    modelSTRING
    api_urlSTRING
    api_keySTRING