Nodes/Allma Nodes/Allma Live Text
ComfyUI Node

Allma Live Text

Watch the LLM type, instead of staring at a blank box

By OliveiraNickolas·Created 24 days ago·Updated 21 days ago· 0
Allma Live Text
    • text
    text

    A node output can't stream. When Allma Generate runs, execute() returns once and the whole answer lands in one chunk - so most text previews stay blank while the model thinks, then pop in all at once. That's fine for a final result and useless if what you actually want is to watch the reasoning happen. Allma Live Text is the display node that fills in while the model is still writing, then swaps in the authoritative value when the run ends.

    How it works

    It's a plain STRING display - one text input, one text output, marked as an output node so it stays in the graph. On its own it's just a text preview. The live part kicks in when the string comes from Allma Generate: the node subscribes to the websocket relay the Generate node pushes while the model streams, finding its own source by following its input link back through the graph.

    The two slots are positional: wire Generate's thinking output in and you watch the reasoning as it's produced; wire output_prompt in and you watch the answer assemble. When the run finishes, the final value replaces whatever was streamed, so what you're left with is the real result, not a partial.

    Why you'd bother

    Two reasons. First, thinking-mode debugging: with reasoning ON, watching thinking stream is how you see what the model is deliberating about and whether it's about to blow the shared token budget on thought. Second, plain feedback: a multi-image enhancement run can take a while, and a box that visibly fills in beats a spinning cursor for knowing the thing is alive.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/OliveiraNickolas/AllmaNodes
    

    Restart, no pip install. This is part of the LLM group, but the node itself is just a display - it doesn't call the backend. The float("nan") fingerprint means it always reruns, which is what makes it track fresh output instead of caching a stale value; the flip side is a node like this will keep whatever's downstream of it from being cached, so don't stick it mid-graph.

    Honest caveat, same as the rest of this young pack: no community track record yet. But the mechanism is simple - it's a websocket subscription with a fallback to the final value - so the main thing to remember is the slot ordering (slot 1 is reasoning, slot 0 is the answer). Get that backwards and you'll be watching the wrong text stream by.

    CategoryAllma/llm

    Inputs (1)

    NameTypeDefaultDescription
    textSTRINGWire AllmaGenerate's 'thinking' here to watch the reasoning as it happens, or 'output_prompt' for the answer.

    Outputs (1)

    NameTypeDescription
    textSTRING