Text DropDown
Pick one line out of a list, no re-typing
- text
If you've ever kept a little mental list of "camera angle: front, three-quarter, low-angle" and manually retyped one of those into a prompt every single run, this is the node that gets to skip that. Text DropDown holds a set of text options on the node itself and spits out whichever one you pick as a plain string. It's one of the small text utilities in dadoirie's ComfyUI_Dados_Nodes - a personal grab-bag pack that also ships a couple of vision taggers and a wildcard system, but this particular node has nothing to do with any of that. It's just a menu.
Why you'd reach for it
The obvious use is prompt variation without prompt rewriting: keep a list of art styles, lighting setups, or subject variants on one node, and swap between them with a click instead of hunting through a text box for the word you want to change. Chain a couple together - one for style, one for lighting, one for camera - and you've got a lightweight prompt-builder that beats maintaining five near-duplicate CLIP Text Encode nodes.
How it actually works - and an honest caveat
Here's the thing worth flagging before you install it: the node's formal schema - the part ComfyUI itself reports about its inputs - is empty. No required fields, no optional fields. That's unusual, and it's not a documentation gap on our end; it's a real property of how this node is built. Whatever the README describes - "interactive dropdown selections with random selection and duplicate filtering" - lives entirely in the node's own on-canvas UI, not in named widgets ComfyUI's schema system tracks. Practically, that means the list of options, the random-pick toggle, and whatever dedup logic exists aren't things this write-up can name precisely, because they're not exposed the normal way. Drop the node on your canvas and look at the node itself for those controls - there's nothing to configure from outside it.
Inputs and outputs that matter
There's genuinely nothing in the required or optional inputs to walk you through. The one thing that is documented is the output:
- text (STRING) - whatever option is currently selected, ready to wire straight into a CLIP Text Encode's text field, or into another text utility node like Text Concatenator if you're stacking pieces of a prompt together.
Installing it
Two ways, same as the rest of the pack:
- ComfyUI Manager - search "Dados Nodes," install, restart ComfyUI (a browser refresh alone won't pick up a newly installed node).
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/dadoirie/ComfyUI_Dados_Nodes.git, thencd ComfyUI_Dados_Nodes && pip install -r requirements.txt, then restart.
Worth knowing: that pip install pulls in the whole pack's dependencies, not just what Text DropDown needs - the same install also sets you up for the vision-tagger nodes even if you never touch them.
Common issues
Because this node doesn't take wired inputs, most of the ways to get tripped up are outside the node itself. If it doesn't show up in the node search after install, restart the ComfyUI server process rather than just reloading the tab - that's the single most common "why isn't my new node showing up" fix in the ecosystem generally. If you share a workflow that uses it with someone who hasn't installed the pack, they'll hit a missing-node error on load; ComfyUI Manager's "Install Missing Custom Nodes" button handles that in one pass rather than making them hunt down the GitHub URL themselves.
One more thing worth doing deliberately: since there's no documented default for the random-selection behavior, don't assume it's off (or on). Check it explicitly on the node the first time you use it, especially if you need the same option to come out every run - you don't want to find out mid-batch that it's been picking randomly the whole time. And keep in mind the README's own line about this pack: "actively developed... some features may change between versions." A node with this thin a public spec is exactly the kind of thing that's worth re-checking after an update rather than assuming it still behaves the way it did last month.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |