Nodes/PG Nodes/Lazy Prompt
ComfyUI Node

Lazy Prompt

Save, search, and reuse every prompt you've ever run

By GizmoR13·Created 11 months ago·Updated 11 months ago· 16
Lazy Prompt
  • clip
  • POS_OUT
  • NEG_OUT
positive
negative
all_parameters_ontrue
lensnone
time_of_daynone
light_fromnone
temperature_K_choicenone
pos_lighting_boost1.00
neg_lighting_boost1.00
weighting_target_modelauto

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 color temperature_K_choice dropdowns append sensible photo-style phrases to your prompt, plus pos_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 the PG_CFG_PATH env 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 to none, 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.

CategoryPG

Inputs (11)

NameTypeDefaultDescription
clipCLIP
positiveSTRING
negativeSTRING
all_parameters_onBOOLEANtrue
lensCOMBOnone12 options: none, 14mm, 24mm, 35mm, 50mm, 85mm, +6
time_of_dayCOMBOnone5 options: none, morning, midday, evening, night
light_fromCOMBOnone6 options: none, front, back, left, right, top
temperature_K_choiceCOMBOnone15 options: none, 2500, 3000, 3500, 4000, 4500, +9
pos_lighting_boostFLOAT1.001–2
neg_lighting_boostFLOAT1.001–2
weighting_target_modelCOMBOautoAUTO checks: SD1.5/SDXL -> parentheses; SD3/SD3.5 (T5) & Flux/Qwen/Wan/HiDream -> none (no weights).

Outputs (2)

NameTypeDescription
POS_OUTCONDITIONING
NEG_OUTCONDITIONING