String (Badman)
A plain text literal you can wire into your graph
- STRING
This node does one thing and does it plainly: it holds a piece of text, and it outputs that text as a STRING. No parsing, no wildcard resolution, no processing of any kind. It's a literal - the string equivalent of a constant you drop into a graph so you can reuse it, wire it to more than one place, or swap it out without hunting through a giant node.
How it works
There's a single multiline text box (value) and a single STRING output. Type your text in, wire the output wherever a string is expected. That's the whole mechanism. Where this earns its keep is graph organization, not functionality: instead of typing the same LoRA trigger word, file path, or prompt fragment into three different node widgets and hoping you remember to update all three when it changes, you type it once here and wire the output everywhere it's needed.
The inputs and outputs that matter
value- a multiline string field. Put whatever text you need in it: a prompt fragment, a trigger word, a directory path for another Badman node, a piece of a concatenated prompt.
Output: STRING - the text you typed, unmodified. Feed it into a CLIP Text Encode, a Concat String node, a file-path input on another node - anywhere a string slot exists.
How to install it
Search ComfyUI-BadmanNodes in ComfyUI Manager, or install it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/MariusKM/ComfyUI-BadmanNodes
Restart ComfyUI. There's genuinely nothing to configure for this node specifically - no model, no dependency, no setup beyond having the pack installed. It's a small personal QoL pack (the author calls it "nothing special and nothing crazy" in the README), and this is about as simple as a node in it gets.
Common issues & troubleshooting
You expected it to resolve wildcards, and it didn't. This node is deliberately dumb - it passes the literal text through, character for character. If you paste __character__-style wildcard syntax into it expecting a random pick each run, nothing happens; that's a different node's job. The same pack ships a dedicated Wildcard Processor (Badman) for exactly that, so route wildcard text through that node instead, and use this one for text that should stay fixed.
You just need a scratch value once. For a single one-off string that only feeds one node, ComfyUI's own text widget on that node is simpler - this node earns its place when you're reusing the same text in more than one spot, or when you want a named, easy-to-find node holding a value someone (including future you) will need to edit later. If you're only using it once, it's not wrong, just unnecessary.
Nothing downstream is validating the text. Because it's a raw string with no type constraints, a typo in a file path or a trigger word will happily flow through and fail somewhere further down the graph instead of here. When something breaks downstream and the string looks fine at a glance, check it character by character - trailing spaces and mismatched capitalization are common culprits for a value that "should" work.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| value | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |