Convert String To Combo [LP]
Sneaking a wired string into a dropdown-only input
- any
This one looks like the odd sibling in the pack's conversion family - it doesn't output a STRING, an INT, or a FLOAT. It outputs *, ComfyUI's wildcard "any" type. That's not a mistake, and it's actually the whole point of the node.
Why you'd want a string dressed up as "any"
A lot of ComfyUI nodes expose a fixed dropdown - a COMBO widget - for things like sampler names, scheduler names, or upscale methods. In vanilla ComfyUI, a COMBO-typed input is normally locked to its own widget; you pick from the list, you don't wire something else into it from upstream. That's fine until you want to drive that choice dynamically - build the sampler name in a text node based on some condition, then feed it in, instead of hardcoding it in the graph.
StringToCombo is the workaround. It takes a plain STRING and re-presents it as the loosely-typed wildcard socket that ComfyUI's connection validator treats more permissively, which is enough to let it slot into places that would otherwise reject a wired-in string. It's the same "any type" trick you'll see across the ecosystem wherever someone needs to route a value into a slot ComfyUI wasn't really designed to accept a connection on.
The catch - this node does no validation
Here's the part that matters and is easy to miss: StringToCombo doesn't check whether your string is actually one of the target node's valid choices. It just relabels the type so the wire connects. If you type "euler_ancestral" and the receiving node's sampler list actually has "euler_ancestral" in it - great, it works. If you fat-finger it as "euler-ancestral" (wrong separator) or "Euler_Ancestral" (wrong case), the connection will still succeed, and the failure shows up later, inside whatever node receives it, usually as a KeyError or ValueError at execution time rather than a friendly error when you build the graph.
So treat this node as a type-system bypass, not a magic dropdown-builder. You still need to know the exact valid strings the downstream node expects.
The inputs and outputs that matter
- string - the only input, a plain text field, default empty.
- Output - any (
*), which is what makes the trick work.
That's the entire node. No widgets, no options.
How to install it
Via ComfyUI Manager: search "ComfyUI Level Pixel" or the repo name ComfyUI-LevelPixel, install, restart - it updates automatically with Manager's "Update ALL." Manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/LevelPixel/ComfyUI-LevelPixel.git
Restart ComfyUI. Pure Python, no models, nothing else to install.
Common issues & troubleshooting
Wire connects fine, but the downstream node errors when you run it. This is the expected failure mode, not a bug in StringToCombo - it means your string doesn't exactly match one of that node's valid options. Check the receiving node's actual choice list (open it fresh, without anything wired in, to see the real dropdown values) and match spelling and case exactly.
You're building the string dynamically and it changes per run. That's the intended use case, but it also means a typo anywhere upstream - a text template, a concatenation, a translated string - silently propagates until it hits the receiving node. If you're chaining several text nodes before this one, it's worth dropping a Show Text node just before StringToCombo so you can see exactly what string is about to get sent in.
You just want a normal dropdown, no dynamic driving. If you don't actually need to compute the value at runtime, skip this node entirely and use the target node's own widget directly - it's simpler and ComfyUI validates it for you at graph-build time instead of at execution time.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| string | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| any | * | — |