Combo to String
The Primitive-node trap, fixed
- string
ComfyUI's Primitive node is a classic gotcha. Plug it into a STRING input and it happily becomes a text box. Switch it to combo mode and suddenly it won't connect to that same text field at all - a COMBO output only wires into a COMBO input, even when the value it's holding is just a word like ru or euler.
Combo to String is the targeted fix for exactly that case. Where Any to String takes a wildcard * input and stringifies whatever shows up, this node's value is declared as a COMBO widget, and a small frontend patch (the pack's web/combo_to_string.js) lets a Primitive's COMBO output connect and pushes the selected value into that widget. Whatever lands there comes back out as a proper STRING.
The node's VALIDATE_INPUTS is deliberately permissive - it accepts any incoming value instead of checking it against a hardcoded option list, because the real value is pushed in by the connected Primitive and never appears in the placeholder list. That's why the input shows a placeholder like "(connect a combo / Primitive)": the list you see is just a stand-in.
The input that matters:
value- connect a Primitive in combo mode (or any combo-style output) here.
The output:
string- the selected combo value as a real STRING, ready for any text socket.
Use case, concretely: you have a Primitive holding a sampler name, a language code, or a model-name fragment that a downstream node wants as text. Combo to String turns it into text without you retyping it. The general-purpose sibling is Any to String (wildcard input, accepts anything); this one is for the specific COMBO-can't-reach-STRING problem, and it's the one I'd reach for when I know the source is a combo.
Install through ComfyUI Manager (search "Kinburg-Nodes") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Kinburg/Kinburg-Nodes
then restart ComfyUI. It's a one-author personal pack (Kinburg) with per-package docs and a 1395-check test suite - the kind of maintenance you rarely see in a personal collection. No model downloads, no extra dependencies for this node; the only heavy dependency in the whole pack is llama-cpp-python for the Local LLM nodes, which install.py handles automatically.
Where people get stuck: nothing about this node. The one thing to remember is that the frontend patch has to be active for the Primitive link to connect - if you've disabled the pack's web extensions, this node loses its reason to exist. Otherwise it's a one-wire utility that just works.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| value | COMBO | Connect a Primitive (combo) output here. Its selected value is passed through as a STRING. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| string | STRING | — |