Nodes/ComfyTV/Input Text
ComfyUI Node

Input Text

One text box that feeds your whole canvas, with @media references

By jtydhr88·Created 3 months ago·Updated about 17 hours ago· 725
Input Text
  • images
  • videos
  • audio
  • text
project_id
parent_output_id0
text
main_prompt

Every workflow eventually hits the problem where the same prompt needs to reach five different stages, and retyping it five times guarantees one of them drifts out of sync. Input Text is the ComfyTV stage that solves it the way every value node should: one authoritative text box, fanned out to as many consumers as you like. Type it once, wire it everywhere.

It's a ComfyTV Input stage - a source node, like a loader, rather than an operation on existing data. There's no Run needed in the usual sense; the value is just there, and downstream stages pick up its snapshot.

The inputs

  • main_prompt (multiline) - the actual text you're working with. This is the one you'll use. The tooltip explains the interesting part: you can reference connected media as @image_N / @video_N / @audio_N, and those references expand at run time using the workflow of whatever stage consumes the text. So a single text source can mention "use @image_1 as the starting frame" and the consuming stage resolves it against the media you wired in.
  • images, videos, audio (autogrow inputs) - the media slots those @ references point at. Wire your source assets in here.
  • text (multiline) - a legacy plain-text field; the tooltip says it's migrated into the prompt editor on first open. You can mostly ignore it.

The project_id and parent_output_id inputs are internal frontend bookkeeping - ignore them.

How it works

Input Text is the pack's take on a primitive value node (the "one source, many consumers" pattern): it holds a string and emits it as COMFYTV_TEXT, and anything wired to that output sees the same value. The @image_N syntax is the part that makes it more than a string holder - the references are resolved when the consuming stage runs, so the text stays portable across different media sets. It's the ComfyTV way of keeping prompts in one place instead of embedded in every node.

Install

ComfyTV ships ~190 stages in one pack; installing the pack gives you this node.

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

Restart ComfyUI fully and find it under ComfyTV → Input. ComfyUI Manager also finds it by searching "ComfyTV". No model downloads, no extra Python dependencies. On ComfyUI Desktop or macOS, clone into the running instance's absolute path from the startup log rather than trusting the relative cd.

Troubleshooting

  • @references don't expand. The media has to actually be wired into the images/videos/audio slots with matching labels - a dangling @image_1 with nothing connected resolves to nothing.
  • Output feels empty. An Input stage has no Run button and no preview of consequence; wire it downstream and the value flows when the consumer runs.
  • Old text field vs main_prompt. If a workflow from an older version populated text, it migrates into the prompt editor on open - no action needed.

It's boring plumbing, and that's a compliment. One prompt, one place, zero drift.

CategoryComfyTV/Input

Inputs (7)

NameTypeDefaultDescription
project_idSTRINGInternal — populated by the projectStore on the frontend.
parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
textSTRINGLegacy plain-text value; migrated into the prompt editor on first open.
main_promptSTRINGCompose the prompt here. Reference connected media as @image_N / @video_N / @audio_N; they expand at run using the workflow of the consuming stage.
imagesCOMFY_AUTOGROW_V3
videosCOMFY_AUTOGROW_V3
audioCOMFY_AUTOGROW_V3

Outputs (1)

NameTypeDescription
textCOMFYTV_TEXT