Text (Any input)🧸
Type a string, plug it into any input
- any
Text (Any) is a text box with one special property: its output is a wildcard, so it'll plug into pretty much any input socket that'll accept a connection. You type a string, and instead of the output being locked to STRING, it's typed * - which means ComfyUI lets you wire it into slots that normally wouldn't take a plain text node. That's the entire point of it.
Where this actually earns its keep: some nodes have a dropdown widget you'd rather type into directly. The canonical case in this very pack is Advanced Prompt Enhancer's Optional Models field. Normally it's a pull-down of preloaded model names. But if you convert that widget to an input socket and attach Text (Any), you can just type the exact model name you want - handy when you're hitting a remote service like OpenRouter and the model you need isn't in the list. The pack's author built the node for precisely that workflow: convert the dropdown to an input, feed it a name with Text (Any), done.
More broadly, it's a typed-string source that doesn't care what's on the other end. Any place you'd want to hand-enter a value and shove it into an input that a regular text primitive refuses to connect to, this is the adapter.
How it works
ComfyUI enforces types on connections - a STRING output won't drop into a MODEL input, and so on. The * wildcard type sidesteps that check: the graph lets the connection form. Text (Any) leans on this by declaring its single output as *, so the editor stops fighting you about where the wire can go.
Worth being honest about the tradeoff: the wildcard bypasses the editor's type check, not reality. The node forwards the literal string you typed. If the receiving node genuinely needs a number, a model object, or structured data - not text - connecting Text (Any) to it will let you make the wire but won't magically satisfy the node at runtime. Its sweet spot is inputs that ultimately want a string (like a model name), where the only obstacle was the socket refusing a normal text node.
Inputs and outputs
Straight from the schema, there's almost nothing to it:
- Text - a multiline string input (required). Type your value here.
- any - the output, typed
*(wildcard). Wire it wherever you need the string to go.
No seed, no modes, no toggles. It's a text field with a permissive output.
Installing it
ComfyUI Manager: open Install Custom Nodes, search Plush, select Plush-for-ComfyUI, install, restart. Or clone it manually:
cd ComfyUI/custom_nodes
git clone https://github.com/glibsonoran/Plush-for-ComfyUI.git
cd Plush-for-ComfyUI
python -m pip install -r requirements.txt
Restart ComfyUI. The requirements.txt step installs the OpenAI library that Plush's prompt-writing nodes rely on - Text (Any) doesn't use it, but the install covers the whole pack, so let it run. Nothing to download for this node.
Common issues
The mistake people make is treating the wildcard as a type converter. It isn't. Text (Any) passes your string through as a string; the * just relaxes the editor's connection rules. If you feed it into an input that actually needs a non-string type, expect the receiving node to complain at run time even though the wire connected fine. If you need a string turned into a float, integer, list or dict, that's a job for this pack's Type Converter, not this node.
The other thing: to use it against a widget like Optional Models, you first have to convert that widget to an input (right-click the node, convert the widget). If there's no input socket to plug into, Text (Any) has nowhere to go. Once the socket exists, attach it and type away. And if the pack won't load, it's near-always the OpenAI dependency failing during install - check the ComfyUI startup log, fix it, restart. This node itself has essentially no moving parts to break.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| Text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| any | * | — |