Load Text from Asset
Stop retyping the same prompt — pull it from your asset library instead
- text
"Load Text from Asset" is ComfyTV's answer to a problem every regular gets sick of: the same prompt, the same negative, the same caption living in a dozen text boxes across a dozen workflows. ComfyTV treats text as a first-class asset type in its project library, and this is the Input-stage that pulls it back out - one pick in the node body, and your saved text becomes a text output any downstream stage can read.
ComfyTV is jtydhr88's canvas-app-inside-ComfyUI: every operation is a "stage" node, each stage runs on its own (not through ComfyUI's global queue), and every output is kept as a snapshot in the project. Within that model, a loader like this replaces the "type the whole prompt into the node" habit with "grab it from the library." If you build multi-stage pipelines - generate → pick → edit → composite - and you reuse a character description, a style block, or a set of prompt fragments across them, this is the node that makes the library the single source of truth.
How it works
The node body is an asset picker: browse the project asset library (or drag a text file in), and the card remembers which asset you chose. All five inputs - project_id, parent_output_id, asset_url, asset_id, category - are internal. You do not touch any of them. asset_url is the library payload URL written by the picker, asset_id is lineage/debug, and category just remembers the last filter you had open so the picker reopens where you left it.
On Run, the stage resolves the asset URL to a file on disk, reads it as UTF-8 (BOM handled, bad bytes replaced rather than thrown away), and emits the contents as the stage's output - capped at 2 MB, which is more than enough for any prompt you'd save. Downstream stages consume the snapshot, so re-running this node doesn't drag the whole chain along; that's the per-node Run model doing its job.
The one output that matters
text(COMFYTV_TEXT) - the file's contents. Wire it into any prompt-taking stage: a Generate image/video node, prompt fragments, or a BridgeToText if you need it in a plain ComfyUI workflow.
Install
Standard ComfyTV install. In ComfyUI Manager, search ComfyTV and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV
Then restart ComfyUI. ComfyTV has no extra Python dependencies to pull - that's one of the pack's selling points.
Where people get burned
The one failure mode the code actually guards against is a library entry whose file has vanished. The stage refuses with asset file is missing on disk - the library entry points to a deleted file; re-import it or pick another asset. It's a dead file in the library, not a bug - re-import and pick again. And remember text assets are UTF-8 text, not image metadata: if you're used to pulling prompts out of PNG metadata, that's a different tool. For its one job - turning a saved text asset into a reusable stage output - this node is exactly as boring as it should be.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| 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. |
| asset_url | STRING | Internal — payload URL of the asset picked in the node body. Becomes this stage's output. | |
| asset_id | INT | 00–2147483647 | Internal — library id of the picked asset (lineage/debug only). |
| category | STRING | all | Internal — last-selected category filter, persisted so the node remembers it. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | COMFYTV_TEXT | — |