Nodes/ComfyUI-CustomNodePacks/Parameter History
ComfyUI Node

Parameter History

A time machine for the knob you already twisted

By Code2Collapse·Created 6 months ago·Updated a day ago· 52
Parameter History
    • history_report
    modeall_history
    last_n_runs5
    node_class_filter
    run_a0
    run_b0

    Every ComfyUI user has had this exact moment: you tweaked a slider three runs ago, the image got worse, and you have no idea which knob it was. ComfyUI's own UI doesn't keep a change log - the workflow in the PNG is the state at save time, not the trail of edits that got you there. Parameter History (MEC) is the pack's answer: it logs every parameter change you make into a SQLite database in the background and gives you a node to query it.

    What it records

    The mechanism is a JS extension plus a query node. While you work, a companion script tracks widget changes and writes them to a SQLite DB with a timestamp and the previous value; ParameterHistoryMEC then connects to that database and renders what it finds as a plain-text report. It's an observer, not an undo system - it can tell you what changed and when and from what to what, but it won't rewind anything for you. Frame it as the evidence trail that makes your own debugging sane.

    The three modes

    Three modes, picked by the mode dropdown:

    • all_history - recent parameter changes across all nodes. Default last_n_runs = 5 keeps it bounded.
    • last_run_diff - what changed between the last two runs. This is the one you actually want mid-debug: run, tweak, run, and it shows you the delta in one glance.
    • node_class_filter - history for one node class only (e.g. KSampler), so you can ignore everything else.

    The optional run_a / run_b ints let you diff two specific runs instead of the auto-detected last pair (0 = auto). Output is a single history_report STRING - human-readable text, which is the right call for a diagnostic node; you read it in a text preview or a debugger, you don't wire it into anything.

    Why it's quietly great

    This is the kind of node that sounds useless until you've burned an hour hunting a stray value. It's part of the same Diagnostics family as the Model Metadata Extractor and the model browser routes, all under the pack's C2C/Utils and C2C/Diagnostics categories, and it costs you nothing at runtime - the logging is a background JS pass, not a model.

    Install and caveats

    Install: clone Code2Collapse/ComfyUI-CustomNodePacks into ComfyUI/custom_nodes (or ComfyUI Manager → "CustomNodePacks"), restart, and it's there. Two practical caveats from the design: the history lives in a local SQLite file, so it doesn't follow your workflows around between machines; and because it's widget-change tracking, programmatic changes (an API call, another node writing a value) may or may not land in the log depending on whether they went through the UI. For the everyday "what did I touch" case, neither matters. Wire it to a text display next to your KSampler and you'll never lose a good setting to a forgotten tweak again.

    CategoryC2C/Utils

    Inputs (5)

    NameTypeDefaultDescription
    modeCOMBOall_historyall_history: show recent parameter changes across all nodes last_run_diff: show what changed between the last two runs node_class_filter: filter history to a specific node class
    last_n_runsINT51–100How many recent runs to include
    node_class_filteroptSTRINGNode class name to filter by (e.g. 'KSampler')
    run_aoptINT0First run number for diff mode (0 = auto-detect last two)
    run_boptINT0Second run number for diff mode (0 = auto-detect last two)

    Outputs (1)

    NameTypeDescription
    history_reportSTRINGHuman-readable parameter history report for the chosen mode.