Nodes/ComfyUI-Custom-Scripts/Show Text 🐍
ComfyUI Node Runs on cloud

Show Text 🐍

Read a string mid-graph without opening the console

By pythongosssssΒ·Created 3 years agoΒ·Updated 6 months agoΒ· 3,150
Show Text 🐍
    • STRING
    β—„textβ€”β–Ί

    Show Text does exactly one thing: it takes a string from somewhere else in your graph and puts it on the node so you can actually read it. That sounds almost too simple to write up, but it's one of those nodes you don't appreciate until the moment you need it - the first time an interrogator or a prompt generator hands you a string and you have no idea what's actually in it, because ComfyUI doesn't give you a console by default. This is the console.

    It comes from ComfyUI-Custom-Scripts, a big grab-bag of quality-of-life nodes and UI tweaks by pythongosssss - worth knowing that name, because he's not some anonymous weekend hobbyist. He's one of the people who co-founded Comfy Org back in June 2024, alongside comfyanonymous (ComfyUI itself) and the ComfyUI-Manager author, when the project split off from Stability AI. This particular pack predates that and is mostly separate from his day job on the ComfyUI frontend, but it tells you the level of person maintaining it.

    How it works

    There's one required input - text (STRING) - and that's the whole interface. Wire any node that outputs a string into it: a WD14 or BLIP interrogator reading tags off an image, a prompt-generator node, a String Function node doing text manipulation upstream, anything. Show Text renders that string on a multiline widget right on the node body, so you can eyeball it without digging through logs.

    The output is the same STRING passed straight through (and it's list-typed, so if the upstream node produced a batch of strings rather than one, you'll see all of them). That passthrough matters: Show Text isn't a dead end unless you want it to be. Wire the output onward to a CLIPTextEncode, another Show Text, whatever - you get the "check what this actually says" step without breaking the chain to what comes next. It's also flagged as an output node, so ComfyUI is happy to let it sit at the end of a branch on its own if that's all you need.

    Where it's useful

    Anywhere a node produces text you didn't type yourself: interrogators, LLM-based prompt generators, dynamic prompt expansion, or the output of pysssss's own String Function node when you're building a prompt out of pieces. It's a debugging tool as much as a display tool - the fastest way to confirm "is this the string I think it is" before it goes three more nodes deep and something breaks downstream for reasons you can't trace back.

    Installing it

    Two ways, both standard for this pack:

    • ComfyUI Manager - search "ComfyUI-Custom-Scripts", install, restart.
    • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/pythongosssss/ComfyUI-Custom-Scripts, then restart ComfyUI. The repo's install script handles the rest itself, using symlinks/junctions where it can so updates via git pull stay in sync without you re-copying files.

    No models, no Python dependencies to fight with - it's pure JS/UI plus a handful of lightweight Python nodes.

    Common issues

    Nothing connects when you try to wire a node into it. Show Text only accepts STRING. If the node you're trying to inspect outputs something else - INT, FLOAT, an IMAGE - ComfyUI's type checking will block the connection outright. You'll need whatever converts that value to text first, or a different display node for that type.

    It's showing several boxes stacked instead of one string. That's not a bug - the output is list-typed, and if the upstream node produced a batch (say, tags for several images at once), Show Text displays every item in the batch. If you only expected one, check what actually fed into it.

    The box is empty. That usually means the real problem is upstream, not here - something earlier in the chain produced an empty string (a failed API call, an interrogator that returned nothing). Show Text is doing its job faithfully; the blank display is the diagnostic, not the bug.

    Categoryutils

    Inputs (1)

    NameTypeDefaultDescription
    textSTRINGβ€”

    Outputs (1)

    NameTypeDescription
    STRINGSTRINGβ€”