Prompt Replay
Your pack's own prompt history, ready to replay
- prompt
- meta
Prompt Replay is the pack's memory. Every time the generator or the builder runs, it appends a line to logs/prompt_history.jsonl inside the pack folder - the timestamp, the world JSON used, the enhancer mode, gender, LoRA triggers, and the exact final prompt. Replay reads that log, shows you a dropdown of recent runs, and outputs the exact prompt from whichever one you pick.
Why bother? Because you will absolutely find yourself in the loop of "that generation two hours ago was great, what did I feed it?" With a generator that randomly samples ten categories at once, reconstructing a good roll by hand is miserable. Replay sidesteps it: pick the run, get the exact prompt back, wire it into your encode node. It's the pack's answer to "how do I keep the lucky roll?"
How it works
The dropdown labels are built as idx | timestamp | world | enhancer_mode | source | LoRA: …. The source field matters: generated is a normal generator/builder run, history_lock is a prompt that was frozen via the generator's lock_last_prompt. max_entries (default 80) caps how many runs you can reach back for, newest first. The filters let you find a needle: source_filter (all / generated / history_lock), json_filter and system_filter (case-insensitive substring against the world name and enhancer mode), and lora_filter (substring against the LoRA triggers).
One structural quirk to know: the dropdown options are built when the node loads, so the pick list only refreshes when ComfyUI reloads the node or restarts. The node's own docstring is upfront about this. New generations won't appear in the dropdown mid-session.
The inputs that matter
pick - that's the whole point, choose the run. Then max_entries and the three filters (source_filter, json_filter, lora_filter, system_filter) to narrow the list when the log gets long.
Outputs and wiring
prompt(STRING) - the exact final prompt from the chosen run, ready for CLIPTextEncode.meta(STRING) - a JSON dump of the entry's metadata (timestamp, world, system prompt, gender, custom intro, LoRA triggers, source, node version), handy if you're logging to a spreadsheet or dataset.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/zeeoale/PromptCreatorNode
restart. No models, no keys, zero dependencies beyond what ComfyUI already has - this node is pure log parsing.
The honest take
Before you get excited, the catch: the dropdown starts at "(no prompt_history.jsonl found)" until you've actually generated something with the pack's generator or builder nodes. This isn't a general-purpose prompt history tool - it only sees runs from its own pack. If you feed it prompts from elsewhere, there's nothing to replay. But as a companion to the generator, it closes an annoying loop, and the history_lock source tag is a genuinely nice touch: you can tell at a glance which replays were deliberately frozen and which were lucky rolls.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| pick | COMBO | 1 options: (no prompt_history.jsonl found) | |
| max_entries | INT | 801–500 | — |
| source_filter | COMBO | 3 options: all, generated, history_lock | |
| json_filter | STRING | — | |
| lora_filter | STRING | — | |
| system_filter | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| meta | STRING | — |