Lazy Prompt
Save, search, and reuse every prompt you've ever run
- clip
- POS_OUT
- NEG_OUT
This is the flagship node of PG Nodes, and the pitch is simple: type a prompt once, and it's in your library forever. Lazy Prompt replaces the CLIPTextEncode pair in your graph with a single node that encodes both positive and negative, saves every run to an on-disk history, and lets you search and reload any past entry from the node itself. It's the "prompt history" feature ComfyUI somehow still doesn't ship by default, wrapped in a text-encoder so you don't have to bolt a separate system on.
The author's origin story is relatable: he'd been in ComfyUI a couple of months, found his own workflow kept losing prompts, and built this. It shows in the design - everything here is about "write once, bring it back instantly," which is exactly the loop that burns most people's time.
How it works
Every run, the node encodes positive and negative through your CLIP, returns POS_OUT/NEG_OUT conditionings, and appends the pair to custom_nodes/prompt_history.json (default cap 500 entries, LRU-trimmed). An in-node history panel with search lets you click any past entry back into the boxes. Two extras make it worth the full version over the mini:
- Inline randomizer -
{red|green|blue}picks one option per run, so you can vary a single token across a batch. The node detects the syntax and re-rolls each queue run. - The helper system - camera
lens,time_of_day,light_from, and colortemperature_K_choicedropdowns append sensible photo-style phrases to your prompt, pluspos_lighting_boost/neg_lighting_boost(1.0–2.0) that weight those lighting phrases up or down. The phrase maps live in a config file,PG_Lazy_Prompt_Config.json, which you can point elsewhere via the node's context menu (or thePG_CFG_PATHenv var).
One detail the author got right: weighting_target_model defaults to auto, which uses parentheses weighting on SD 1.5/SDXL and none on T5-encoder models (SD3, Flux, Qwen, Wan, HiDream) where parentheses do nothing. Leave it on auto unless you know why you're overriding it.
Inputs
clip- your CLIP.positive/negative- the prompt boxes.all_parameters_on- master toggle for the helper phrase system; flip off for a plain encoder with history.- The helper dropdowns (
lens,time_of_day,light_from,temperature_K_choice) each default tonone, so nothing gets appended until you ask.
Install
ComfyUI Manager → "PG Nodes" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/GizmoR13/PG-Nodes
No model downloads, no pip deps.
Common issues
Two things catch people. First, the history path: the default points at custom_nodes/prompt_history.json (the \ in the config is Windows-style, but it resolves fine cross-platform), so don't go hunting inside the pack folder. Second, context-menu settings: right-click the node (⋯) to change the history file path or max_entries - if you're on a shared ComfyUI install and prompts from a teammate's runs are appearing in your dropdown, that's this shared default file in action.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| positive | STRING | — | |
| negative | STRING | — | |
| all_parameters_on | BOOLEAN | true | — |
| lens | COMBO | none | 12 options: none, 14mm, 24mm, 35mm, 50mm, 85mm, +6 |
| time_of_day | COMBO | none | 5 options: none, morning, midday, evening, night |
| light_from | COMBO | none | 6 options: none, front, back, left, right, top |
| temperature_K_choice | COMBO | none | 15 options: none, 2500, 3000, 3500, 4000, 4500, +9 |
| pos_lighting_boost | FLOAT | 1.001–2 | — |
| neg_lighting_boost | FLOAT | 1.001–2 | — |
| weighting_target_model | COMBO | auto | AUTO checks: SD1.5/SDXL -> parentheses; SD3/SD3.5 (T5) & Flux/Qwen/Wan/HiDream -> none (no weights). |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| POS_OUT | CONDITIONING | — |
| NEG_OUT | CONDITIONING | — |