MarvelousText
The plainest node in the pack — and why it exists anyway
- text
Let's be honest about what MarvelousText is: a text box that outputs exactly the text you typed into it. One input, prompt_text, one output, text, both plain strings. If you already have ComfyUI installed, you have two or three nodes that do this. So why is this node in the pack?
Because it's not really a node. It's a remote control for a node.
The actual purpose
MarvelousText is the front-end integration point for the Marvelous-Box-Comfyui pack, a Chinese-origin "prompt collection" tool. The pack ships a Vue-based web UI that connects to your ComfyUI server, and when you pick a prompt from your saved library, that UI calls straight into the graph and rewrites this node's prompt_text value live - the source literally does updateNodesByTitle('MarvelousText', 'prompt_text', ...) in response to the UI's messages. So the flow is: your prompts live in the app's SQLite library, you browse them in a nice web panel, and the node in your workflow just updates to match. No copying text back and forth between a prompt manager and ComfyUI.
That's also the catch, and I'll say it plainly: on its own, outside that web UI, MarvelousText is redundant. The built-in string node does the same pass-through job, and nothing in the node itself talks to the library - it's a dumb pipe the app writes into. If you don't intend to use the pack's web panel, you gain nothing by swapping this in.
How it works
There's no mechanism to speak of. The node returns whatever string it was given - one prompt_text input, one text output, wired straight through. Its only interesting property is that the pack's frontend can find and update it by node title from outside the graph, which the stock nodes can't do. When the web UI is connected and you click a saved prompt, this is the node that receives it. Wire the text output anywhere a prompt string is accepted - into a CLIPTextEncode, a prompt merger, whatever you'd normally feed.
Installing it
Install the whole pack; the node comes with it. ComfyUI Manager (search "Marvelous-Box-Comfyui") or the standard clone:
cd ComfyUI/custom_nodes
git clone https://github.com/ChaosHL/Marvelous-Box-Comfyui
Then restart ComfyUI. No extra pip dependencies and no model files to download - the node itself imports nothing beyond ComfyUI core. You will notice the pack creates an example.db in its folder on first load; that's the prompt library, and it's expected.
Gotchas
Since the node is a UI target, the main thing to get right is the node's title - the web UI matches by name, so if you rename the node to something clever, the app may stop finding it. Also remember the value only changes when the UI pushes it; a freshly added node starts empty, and no prompt appears in the box until you actually select one in the panel.
Reality check worth repeating: this pack has no real community footprint - no Reddit presence, no impression history on comfy.icu, one commit from its author (ChaosHL) in September 2025. It's a personal tool that happens to be open source. MarvelousText is a fine little plumbing part if you buy into the whole Marvelous Box workflow; judged as a standalone custom node, it's a text box.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt_text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |