ComfyUI Node

Show String

The graph's little proofreader, hiding inside Ultralytics Studio

By andreszs·Created 6 months ago·Updated 13 days ago· 9
Show String
      text

      You feed a pose into ControlNet, the output is wrong, and you want to know what the node actually sent. That's the job of Show String - a tiny output-only node bundled inside ComfyUI-Ultralytics-Studio. It takes any string wire and prints it on the canvas so you can read it. Think of it as a print() statement for your graph, one you don't have to tear the graph apart to add.

      What it is

      Show String is a debug display node with exactly one input and no outputs. The input is text (STRING), and it's marked forceInput - you can't type into it, you have to wire something in. That's not a bug, it's the design: this node exists to reflect values already flowing through the workflow, not to hold ones you type.

      It lives in the Ultralytics Studio category because the pack's main node, Ultralytics Studio, produces a JSON string output that's genuinely worth eyeballing - canvas dimensions, keypoint coordinates, confidence values. Drop a JSON → text wire into Show String and you see the raw pose data without exporting anything. But nothing stops you wiring it to any other string output you're debugging. It's the classic "show text" node, renamed and filed under a pose pack.

      How it works

      The Python side is trivial: show_text returns {"ui": {"text": text}}. The real work is frontend - the pack ships js/show_string.js, which hooks the node's onExecuted and replaces the widget area with a read-only, dimmed multi-line box for every string that came in. Because the node is declared INPUT_IS_LIST, a batch of strings renders as one box per item instead of the list getting flattened into a single line.

      Two practical consequences: values only appear after a run, and the box is read-only. A fresh node shows nothing until its upstream executes, and the dimmed styling is a hint that this is a peek window, not an input.

      Installing it

      You don't install Show String alone - it comes with the pack. In ComfyUI Manager, search for ComfyUI-Ultralytics-Studio (the display name is "Ultralytics Studio"), or clone it by hand:

      cd ComfyUI/custom_nodes
      git clone https://github.com/andreszs/ComfyUI-Ultralytics-Studio
      

      Then restart ComfyUI - fully, not just a page refresh. The whole pack is browser-side JS plus a thin Python wrapper with zero pip dependencies, so this is about as painless as custom node installs get. (The custom node ecosystem's usual problem is dependency conflicts; this pack sidesteps them entirely, per pyproject.toml having an empty dependencies list.)

      Troubleshooting

      • The node shows nothing - it only renders after execution. Queue a run and the text appears.
      • The input looks uneditable - correct. Wire a string in; that's the point.
      • The widget is stale - re-run. Show String re-reads its input on every execution and replaces the displayed value.
      • Node missing entirely - the pack didn't load. Restart ComfyUI completely and check the console for import errors, then verify you're not running with Nodes 2.0 enabled (this pack warns it isn't compatible with Nodes 2.0 yet).

      Not glamorous, but it's the difference between blind pose wrangling and knowing exactly what JSON is sitting in that wire.

      CategoryUltralytics Studio

      Inputs (1)

      NameTypeDefaultDescription
      textSTRING

      Outputs (0)

      No outputs