Nodes/ComfyTV/← ComfyTV Text
ComfyUI Node

← ComfyTV Text

Getting ComfyTV text back into normal ComfyUI

By jtydhr88·Created 3 months ago·Updated about 15 hours ago· 725
← ComfyTV Text
  • text
  • STRING

ComfyTV is a canvas app that lives inside ComfyUI, and it has its own idea of what "text" is. A ComfyTV Text Stage or the → ComfyTV Text bridge hands you a COMFYTV_TEXT snapshot - a string that lives in the ComfyTV project, not something the native node graph can see. Every native node that wants a string - CLIP Text Encode, Show Text, any LLM chain - expects a plain STRING. ← ComfyTV Text is the one-way door between those two worlds: COMFYTV_TEXT in, STRING out, nothing else.

That's the whole job, and the "←" in the name is doing real work. bridges run and snapshot data into the ComfyTV project; this one points the other way, pulling text out of it and into the normal graph.

How it works

The Python is about as thin as a node gets. execute does str(text or "") and returns it as a STRING - the source literally calls it a pass-through with no disk I/O. No ▶ Run, no project snapshot, no queue semantics beyond the graph's own. Wire it after a ComfyTV text producer and it behaves like any normal node on the ComfyUI queue: it runs when the graph runs.

The one input is text (COMFYTV_TEXT). The single output is STRING. That's the entire schema - there is nothing to configure, which is the point of a bridge.

When you actually need it

The concrete case is a ComfyTV prompt chain feeding a native branch. Say a Text Stage drafts a narrative, and you want a regular CLIP Text Encode or a third-party string tool to chew on it. Or you just want to eyeball what a ComfyTV stage emitted - debug with Show Text. Those all read STRING, so the bridge is the adapter.

The gotcha is the reverse direction: if upstream is empty (a Text Stage you never ran, or an empty → ComfyTV Text), you get an empty string, not an error. Check upstream before you chase ghosts downstream.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV

Restart the ComfyUI backend (a full restart, not a tab refresh) and the nodes appear under the ComfyTV category in the Add-Node menu. ComfyUI Manager also finds it by searching "ComfyTV". Two install gotchas from the README bite more often than they should: on ComfyUI Desktop, macOS, or a multi-install setup, the relative cd can clone into the wrong instance - read the startup log for the base path it actually loaded and clone into that absolute path, quoted. And the first level of custom_nodes/ComfyTV/ must contain __init__.py; if you see a nested ComfyTV/ComfyTV/…, move the inner folder up.

The good news: the pack declares zero Python dependencies. Everything heavy in ComfyTV runs in the browser or through ffmpeg/PyAV that ComfyUI already ships, so there's no dependency chase.

Troubleshooting

  • Empty STRING on the other end. Upstream ComfyTV text was never Run, or it's genuinely empty. Run the producing stage first.
  • Node not appearing after install. Wrong instance or a nested folder - check the layout and restart the backend, not the browser.
  • Wondering why you'd use this instead of → ComfyTV Text? The arrow is the whole story: pushes into ComfyTV (needs a Run), pulls out to native (plain graph execution). They pair up as a round-trip.
CategoryComfyTV/Bridge

Inputs (1)

NameTypeDefaultDescription
textCOMFYTV_TEXT

Outputs (1)

NameTypeDescription
STRINGSTRING