Prompt Presets
Five Dropdowns That Stop You Re-typing the Same Camera and Light
- camera
- aesthetics
- light
- medium
- background
Half of prompt engineering is vocabulary - knowing that "cinematic anamorphic" and "Rembrandt lighting" are the phrases your model actually responds to, and then typing them correctly every time. Prompt Presets is the node that makes that a dropdown instead of a memory test. Five flexible preset slots, each emitting a prompt fragment, pre-loaded with curated categories for Camera, Aesthetics, Light, Medium and Background - the classic building blocks of a structured prompt.
How it works
Five slots, each with two dropdowns: a category selector and a preset selector (the presets of that category). Any slot can draw from any category, so slot 3 can be a Light fragment even though its label defaults to Medium. Each category ships with curated built-ins - Camera → Cinematic Anamorphic, Light → Rembrandt, Aesthetics → Cyberpunk - plus a 🚫 None option that resolves to an empty string. At run time each preset resolves to its fragment on the five outputs: camera, aesthetics, light, medium, background. Wire them into your prompt builder or a text concat and you're done.
The genuinely useful part is that it's editable. ➕ Add preset - pick a category, name it, type the fragment (re-using a name edits it). 🗂 Categories - add, rename, delete your own categories; the five built-ins are protected. And 💾 Save setup names the whole combination of all five slots' category+preset, so a "portrait" setup and a "landscape" setup are one click apart on the ⚙ setup selector. Custom presets, categories and setups persist on disk (prompt_presets/data/store.json) via server routes, so they survive restarts and appear across all Prompt Presets nodes in your workflows.
Why you'd use it over typing
The argument isn't that presets write better prompts - it's consistency. A structured prompt for the LLM-encoded bases reads as camera, aesthetics, lighting, medium, background, and if you've ever hand-typed "cinematic anamorphic" as "cinematic anamorphic lens flare" and gotten a different result, you know the value of a fixed string. It also pairs well with the pack's Prompt Variations node: keep the stable vocabulary here, vary the subject in a template. If your prompts are all one long sentence with no structure, this node will feel like overkill - it's built for the people who already think in prompt components.
Install
Part of the Kinburg-Nodes pack - ComfyUI Manager (search "Kinburg-Nodes"), or cd ComfyUI/custom_nodes && git clone https://github.com/Kinburg/Kinburg-Nodes, restart. No dependencies, no models. Data persists in the pack's own store file, git-ignored, so nothing pollutes your ComfyUI config. It's a convenience node - but for a working style where prompt structure is repeatable, it's the difference between re-typing and re-selecting.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| cat_1 | COMBO | camera | Slot 1: which preset category this dropdown draws from. |
| preset_1 | COMBO | 🚫 None | Slot 1: the preset (from its category) — resolves to a prompt fragment. |
| cat_2 | COMBO | aesthetics | Slot 2: which preset category this dropdown draws from. |
| preset_2 | COMBO | 🚫 None | Slot 2: the preset (from its category) — resolves to a prompt fragment. |
| cat_3 | COMBO | light | Slot 3: which preset category this dropdown draws from. |
| preset_3 | COMBO | 🚫 None | Slot 3: the preset (from its category) — resolves to a prompt fragment. |
| cat_4 | COMBO | medium | Slot 4: which preset category this dropdown draws from. |
| preset_4 | COMBO | 🚫 None | Slot 4: the preset (from its category) — resolves to a prompt fragment. |
| cat_5 | COMBO | background | Slot 5: which preset category this dropdown draws from. |
| preset_5 | COMBO | 🚫 None | Slot 5: the preset (from its category) — resolves to a prompt fragment. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| camera | STRING | — |
| aesthetics | STRING | — |
| light | STRING | — |
| medium | STRING | — |
| background | STRING | — |