Negative Prompt Presets π«
Stop retyping the same negative prompt in every workflow
- negative_prompt
- summary
Every SD1.5/SDXL workflow you've ever copied has the same block of boilerplate sitting in the negative prompt box: "worst quality, low quality, blurry, bad anatomy, extra fingers..." It works, and you are tired of typing it. Negative Prompt Presets π« is a dropdown that hands you that boilerplate, plus a custom_text field for your additions, and outputs a ready-to-encode STRING.
The value is not the text - it's that the block is now one widget instead of a wall of tags you maintain across every workflow. Pick a preset, append your per-job bits, wire the output into CLIP Text Encode's negative input. Done.
How it works
It's a dictionary of preset strings, nothing more clever than that. The dropdown choices are the point: none (outputs only your custom text - handy pass-through), general quality (the jpeg artifacts / watermark / blurry family), anatomy fixes (bad hands, extra fingers, long neck, the whole dance), general quality + anatomy (the combined workhorse), and two style-flipper presets - photography to avoid the illustration look, and anime/illustration to avoid the photo-real look. Your custom_text is appended comma-separated after the preset. Outputs are the assembled negative_prompt string and a summary so you can see which preset fired.
The input that matters
Just preset and custom_text. The summary output is worth wiring into a display once so you can confirm what you actually sent - a surprising number of "why did this render weird" moments trace back to a stale preset choice.
Now the honest editorial, because the KB's prompt-engineering doc makes the point better than I can: negative prompts are a living practice on SD1.5 and SDXL-lineage models, and largely inert on the LLM-encoded 2026 generation (Flux-style models at CFG 1, where the negative prompt does nothing, and can actively hurt above it). So treat this node for what it is: a convenience for the SDXL/Illustrious/Anima world where that boilerplate still does real work. On a Flux workflow, the preset is dead weight and this node saves you nothing.
Installing it
Part of the OmniNodes pack:
cd ComfyUI/custom_nodes/
git clone https://github.com/TensorVizion/OmniNodes
Restart ComfyUI (or search "OmniNodes" in ComfyUI Manager). No extra dependencies - it's pure Python, no pip installs. It registers under TensorVizion/Prompt. If it doesn't show up, restart completely and look for [OmniNodes] β
Loaded in the terminal.
If you're on SDXL-lineage models, this is a genuine QoL win: one dropdown replaces a dozen copies of the same negative block, and custom_text keeps the per-workflow tweaks without forking the whole preset.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | general quality + anatomy | 6 options: none, general quality, anatomy fixes, general quality + anatomy, photography (avoid illustration look), anime/illustration (avoid photo-real look) |
| custom_text | STRING | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| negative_prompt | STRING | β |
| summary | STRING | β |