Negative
Your negative prompt, filed and switchable — with a caveat
- text
- id
Every selector in the Prompt String Selector pack feeds the positive prompt - except this one. Negative is the pack's file-backed dropdown for your negative prompt, and it works exactly like the others: text files in data/negative/, filename becomes the dropdown label, leading number becomes id, custom_input overrides with a text box.
The caveat up front, because it matters and the README won't tell you: negative prompts are inert on guidance-distilled models. If you're running a CFG-1 distilled checkpoint - which covers most of what people actually run these days - whatever you put in the negative box does nothing. Not "little," nothing. This node still makes total sense for the CLIP-encoded tag models where negatives earn their keep: SDXL, Illustrious, NoobAI, Pony, SD 1.5. On those, bad hands, extra fingers, lowres is a real, working tool, and the classic negative-prompt fixes from the troubleshooting playbook still apply.
How it works
Reads ComfyUI/custom_nodes/ComfyUI-Prompt-String-Selector/data/negative/, shipped with 01_none.txt as a no-op. Standard rules: .txt files become dropdown entries, filename minus extension is the label, leading number is the id output, // and /* */ comments are stripped. Output text is comma-terminated like the positive selectors, so it chains into the negative path of your CLIP text encode without you adding punctuation.
Inputs and outputs
- negative - dropdown of your saved negative blocks.
- negative_custom - multiline override;
custom_inputuses this box's text,idbecomes 0.
Outputs: text (STRING) and id (INT). Wire text to the CLIP text encode's negative input, or into the pack's Aggregator if you're building a negative path from multiple blocks.
Install
ComfyUI Manager → search "Prompt String Selector", or:
cd ComfyUI/custom_nodes
git clone https://github.com/itom0717/ComfyUI-Prompt-String-Selector.git
Restart. No dependencies - the whole pack is the Python standard library.
Gotchas
Restart-to-refresh dropdowns, as everywhere here. The bigger gotcha is the model-dependency above: check what your checkpoint is before trusting the node to do anything. And a practical tip from the pack's structure - keep a 01_none.txt-style "no negative" option around. Some workflows want a negative path, some don't, and a dropdown beats deleting a node each time. If you're on a distilled model and the box feels like it's doing nothing, it probably is - that's the model, not the node.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| negative | COMBO | 2 options: 01_none, custom_input | |
| negative_custom | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| id | INT | — |