ComfyUI Node

Prompt Replay

Your pack's own prompt history, ready to replay

By zeeoale·Created about a year ago·Updated 2 months ago· 9
Prompt Replay
    • prompt
    • meta
    pick
    max_entries80
    source_filter
    json_filter
    lora_filter
    system_filter

    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.

    CategoryPrompt Tools

    Inputs (6)

    NameTypeDefaultDescription
    pickCOMBO1 options: (no prompt_history.jsonl found)
    max_entriesINT801–500
    source_filterCOMBO3 options: all, generated, history_lock
    json_filterSTRING
    lora_filterSTRING
    system_filterSTRING

    Outputs (2)

    NameTypeDescription
    promptSTRING
    metaSTRING