Nodes/Nova Audio Player/Nova SQL Dump ๐Ÿ›ข๏ธ
ComfyUI Node

Nova SQL Dump ๐Ÿ›ข๏ธ

It logs what actually ran, not what you clicked

By NovaFemmeยทCreated 20 days agoยทUpdated 2 days agoยท 0
Nova SQL Dump ๐Ÿ›ข๏ธ
    • status
    โ—„enable_storagetrueโ–บ
    โ—„flow_nameโ–บ
    โ—„host127.0.0.1โ–บ
    โ—„userrootโ–บ
    โ—„passwordโ–บ
    โ—„databasecomfyui_dbโ–บ

    Most "log your ComfyUI run to a database" nodes have the same flaw: they snapshot the widget values at the moment you press Queue. That's before the run. It's the inputs you intended, not the ones that were used, and if the run errors or you cancel it, you've logged a generation that never happened. Anyone who's tried to analyse a few hundred runs from a table full of phantom rows knows how useless that is.

    Nova SQL Dump ๐Ÿ›ข๏ธ logs against ComfyUI's real execution lifecycle instead. A frontend script captures the snapshot when a run actually starts, and then writes one row per lifecycle event:

    • flow_start - the run began, with the values actually used
    • flow_end - finished successfully
    • flow_cancelled - interrupted
    • flow_exception - errored

    One row per event into a canvas_snapshots table, and each row carries flow_name, the label you type on the node, so runs are trivial to group and query afterwards. WHERE flow_name = 'metal_album_02' gets you the whole session, including the two that blew up.

    Inputs and output

    • enable_storage - a real toggle, so the node can sit in a saved workflow switched off. It's on by default, which is the right default for a node you'd otherwise have to delete and re-add.
    • flow_name - label for this flow. Type something meaningful; this is the column your queries will actually use.
    • host, user, password, database - MySQL/MariaDB connection details. Defaults are 127.0.0.1, root, empty, comfyui_db. The database and table are created if they don't exist, and the flow_state / flow_name columns get added to older tables rather than erroring.
    • Output: status, a string you can wire into Nova Console to confirm what happened.

    Treat the credentials as what they are - a plaintext host, user and password sitting in a workflow file. Local MySQL, throwaway user, no reuse of anything you care about. Workflows get shared.

    The dependency gotcha, handled

    This node needs pymysql, which ComfyUI does not ship. The pack declares it in pyproject.toml so the registry and Manager install paths pull it in. But the very common path - git clone straight into custom_nodes - runs no pip at all, so here's the case you should know about:

    The import is lazy and guarded. If pymysql is missing you get a clean error at the point of use, in words, telling you to pip install pymysql. You do not get an ImportError in __init__.py that takes all 25 nodes off the menu over one optional database feature. The author's own comment in the source says the machine it was written on had pymysql - which is exactly why an unguarded import would never have shown up in testing. Same discipline is applied to mutagen for the tag nodes and scipy for the LUFS measurement.

    <venv>/bin/python -m pip install pymysql
    

    Install

    ComfyUI Manager โ†’ Nova Audio Player โ†’ install โ†’ restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/NovaFemme/ComfyUI-NovaAudioPlayer.git
    

    Under โ–ถ๏ธ Nova Audio โ†’ ๐Ÿ› ๏ธ Utility & IO. No models, no downloads, one small pure-Python package.

    Who this is actually for

    If you're generating a song a month, a text log is fine. If you're producing music at volume and want to answer questions like "which sampler settings correlate with the takes I kept", a table of runs with real lifecycle state is the only way to do it without lying to yourself about your data. Pair it with Nova Master Report Viewer ๐Ÿ“Š and the player's panel_info output - both are built on the same principle this node is: the number that gets logged is computed once, from the audio, and never re-derived from what's on screen.

    Categoryโ–ถ๏ธ Nova Audio/๐Ÿ› ๏ธ Utility & IO

    Inputs (6)

    NameTypeDefaultDescription
    enable_storageBOOLEANtrueโ€”
    flow_nameSTRINGโ€”
    hostSTRING127.0.0.1โ€”
    userSTRINGrootโ€”
    passwordSTRINGโ€”
    databaseSTRINGcomfyui_dbโ€”

    Outputs (1)

    NameTypeDescription
    statusSTRINGโ€”