→ ComfyTV Text
Feed any STRING into ComfyTV stages as a snapshot
- text
ComfyTV's Image and Video stages take prompt text as COMFYTV_TEXT, not as the plain STRING every native node produces. So when your prompt is coming from somewhere smarter than a typed box - Comfy-Org's Prompt Enhance, an LLM chain, a captioning pass - you hit the same wall as everywhere else in this pack: native types don't plug into ComfyTV sockets. → ComfyTV Text is the adapter that turns any STRING into a COMFYTV_TEXT snapshot.
The arrow means it's an into-bridge: a Stage with a ▶ Run that persists the string into the project's lineage. Text is cheap, so unlike the image and video bridges there's no file written under output/ComfyTV/bridge/ - the snapshot is the string, registered directly. Downstream stages read that snapshot until you re-run the bridge.
How it works
On Run, _stage_emit_auto registers the string as a COMFYTV_TEXT snapshot and hands it back out. The schema is about as small as it gets: a text input (STRING, multiline - and force_input means you can either wire a string in from upstream or just type into the node), and a single text output of type COMFYTV_TEXT. Plus the internal force_run_token / project_id / parent_output_id trio you leave at defaults.
The natural consumer is an Image or Video Stage's texts input, where the docs note you can chain multiple COMFYTV_TEXT snapshots to build context. One useful nuance from the author's docs: texts appends context - the stage's main_prompt field is still the primary prompt. The bridge feeds the stage; it doesn't replace the stage's own prompt box.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV
Restart the backend, not just the tab. ComfyUI Manager finds the pack by searching "ComfyTV". The README's two recurring gotchas: on Desktop/macOS/multi-install setups 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 (move up a level if you see a nested ComfyTV/ComfyTV/…).
pyproject.toml declares zero Python dependencies. Nothing to babysit.
Troubleshooting
- Downstream text never updates. Into-bridges snapshot on Run, not on Queue - and snapshots are sticky. Re-run the bridge after the upstream string changes.
- No string wired? It still works - type directly in the node's multiline field. The input accepts either.
- Confusing it with a Text Stage. A Text Stage runs an LLM workflow to produce text; this bridge just forwards an existing STRING into the ComfyTV type system. Different jobs.
- Node missing after install. Wrong instance or nested folder - verify the layout, do a full backend restart.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| force_run_token | INT | 00–2147483647 | Internal — bumped on Run to invalidate ComfyUI's input cache. |
| project_id | STRING | Internal — populated by the projectStore on the frontend. | |
| parent_output_id | INT | 00–2147483647 | Internal — lineage parent set by spawn handlers on the frontend. |
| text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | COMFYTV_TEXT | — |