DJ Prompt Presets
The four-slot preset combiner for Pony, Illustrious, and NoobAI quality tags
- clip
- POSITIVE
- NEGATIVE
- pos_text
- neg_text
If you run Pony, Illustrious, or NoobAI, a good chunk of your prompt is the same quality-tag incantation every single time - score_9, score_8_up, score_7_up for Pony, masterpiece, best quality, very aesthetic for Illustrious and NoobAI. You either retype it constantly or keep a text file open. DJ Prompt Presets is the node that stores those blocks and stacks up to four of them per run, then encodes the result for you.
How it works
The node reads a JSON file - Prompt_presets/base_preset.json inside the pack's folder - and turns each entry into a dropdown option. You get four slots, preset_1 through preset_4, each listing the eight built-in presets plus None. On queue it concatenates whatever you selected (positives with positives, negatives with negatives, joined by commas), encodes the result with the CLIP you fed it, and hands you ready-to-use conditioning.
The wiring:
clip- the CLIP from your checkpoint or loader. It needs one; this node does the encoding itself.POSITIVE/NEGATIVE(CONDITIONING) - straight into your sampler's positive and negative inputs.pos_text/neg_text(STRING) - the actual final strings, handy if you want to display them, save metadata, or pipe them into another prompt tool.
The trap that will bite you
The node has two extra fields, generated_positive and generated_negative, and they look like prompt text boxes. They're not. In the shipped code those inputs are dead - the front-end JS turns them into read-only display widgets that show the final concatenated strings after you queue. Typing a prompt in there does nothing to your output. Plenty of people have written a whole prompt into generated_positive, wondered why it vanished, and only then read the fine print. If you want extra text mixed in, add it to a preset instead.
What's in the box
The presets cover the useful bases: DJ Pony and DJ Illustrious carry the correct quality-tag vocab for those model families, and there are style blocks for hyperrealism, digital illustration, fairy tale, and dystopian, plus a composition helper (DJ Dynamic) and DJ Negative Enhance.
One take, for what it's worth: DJ Negative Enhance is the old-style forty-keyword mega-negative, and that's mostly cargo cult on modern SDXL-lineage models - a negative prompt doesn't remove anything, it just pushes the sampler away from what you wrote, and at CFG 1 it isn't computed at all. The Pony and Illustrious presets are the genuinely valuable ones here because they encode the quality tags the models were actually trained to respond to.
Customizing it
The presets are just JSON, and the structure is simple: each entry has a name, a prompt, and an optional negative_prompt. Add your own blocks for recurring characters or styles:
{ "name": "My style", "prompt": "your block", "negative_prompt": "optional" }
Edit Prompt_presets/base_preset.json in the pack folder, then reload the workflow so the dropdowns pick up the new names.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/magekinnarus/ComfyUI-V-Prediction-Node
Restart ComfyUI. No pip dependencies - it only uses ComfyUI internals plus that one JSON file. It's a small, unglamorous node, but if you're living on Pony or Illustrious it quietly deletes the most tedious part of the workflow.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| preset_1 | COMBO | 9 options: None, DJ hyperrealism, DJ Illustrious, DJ Negative Enhance, DJ Dynamic, DJ Digital Illustration, +3 | |
| preset_2 | COMBO | 9 options: None, DJ hyperrealism, DJ Illustrious, DJ Negative Enhance, DJ Dynamic, DJ Digital Illustration, +3 | |
| preset_3 | COMBO | 9 options: None, DJ hyperrealism, DJ Illustrious, DJ Negative Enhance, DJ Dynamic, DJ Digital Illustration, +3 | |
| preset_4 | COMBO | 9 options: None, DJ hyperrealism, DJ Illustrious, DJ Negative Enhance, DJ Dynamic, DJ Digital Illustration, +3 | |
| generated_positiveopt | STRING | — | |
| generated_negativeopt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| POSITIVE | CONDITIONING | — |
| NEGATIVE | CONDITIONING | — |
| pos_text | STRING | — |
| neg_text | STRING | — |