ComfyUI Node Runs on cloud

textDebug

The node that shows you what your prompt actually is

By TinyTerraΒ·Created 3 years agoΒ·Updated 3 months agoΒ· 604
textDebug
    • text
    β—„print_to_consoleβ–Ύβ–Ί
    β—„console_titleβ–Ί
    β—„executeβ–Ύβ–Ί
    β—„textβ–Ί

    Ever wired a chain of text nodes together and had no idea what string actually reaches the KSampler? That's the exact hole textDebug is for. It's a tiny display node from the tinyterraNodes pack that shows text right on the node body, optionally dumps it to the console, and passes the string through untouched so you don't break your pipeline to look at it.

    ComfyUI is great at showing you images, but it's terrible at showing you strings - and strings are half of what makes a workflow tick. Before you start changing sampler settings like the debugging principle says (lock the seed, change one variable, compare), you need to know what the prompt actually is after a concat node, a dynamic prompt, or an embedding autocomplete stuffed something into it. That's this node's whole job.

    How it works

    The text input is a multiline string that's flagged forceInput, meaning it's designed to be wired in from upstream nodes - a text node, a concat, a filename builder, whatever - though you can also just type into it. The node renders whatever it receives on its body so you can read it without opening anything.

    The execute dropdown is the sneaky bit. Set to On Change (the sensible default), the node only re-runs when its text actually changes. Set to Always, and it forces a re-evaluation on every queue - the code literally toggles its IS_CHANGED method each run so ComfyUI can't skip it. That's useful when upstream should have changed something but ComfyUI's caching is convinced it didn't.

    The inputs that matter

    • text - the string to display and pass through.
    • print_to_console - True/False. When on, it prints the text to the terminal where ComfyUI is running.
    • console_title - a label prefix for that console line. Leave it blank and the node is smart enough to look up what fed it and print the upstream node's name instead, which is genuinely handy for a graph full of identical-looking text boxes.
    • execute - "Always" or "On Change", as above.

    Output is a single text (STRING), a faithful pass-through, so you can insert this node mid-chain and the rest of the workflow keeps working. It's also marked as an output node, so it executes and displays even if nothing downstream is connected.

    Installing it

    It ships with the whole tinyterraNodes pack, so you get it with the one install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/TinyTerra/ComfyUI_tinyterraNodes
    

    Then restart ComfyUI. Or skip all that and use ComfyUI Manager - search for "ComfyUI_tinyterraNodes" (or "tinyterra") and install from there. Good news: no extra pip dependencies and no model downloads. This is one of the leaner corners of the pack, not the RemBG or upscale-model stuff.

    Where people get tripped up

    The most common confusion: the console output doesn't appear in the browser. It goes to the terminal window you launched ComfyUI from - so if you toggle print_to_console and see nothing on screen, that's not a bug, you're looking in the wrong place.

    Second: leave execute on On Change unless you have a reason. "Always" makes the node re-run on every queue, which in a big workflow is wasted cycles and can trigger downstream re-execution you didn't ask for. Reach for it only when ComfyUI's caching is stubbornly showing you stale text.

    It's a quiet little node, but it's the kind of thing you reach for constantly once you know it exists. Strings in ComfyUI are invisible until they're not - this makes them visible.

    Category🌏 tinyterra/text

    Inputs (4)

    NameTypeDefaultDescription
    print_to_consoleCOMBO2 options: false, true
    console_titleSTRINGβ€”
    executeCOMBO2 options: Always, On Change
    textSTRINGβ€”

    Outputs (1)

    NameTypeDescription
    textSTRINGβ€”