Nova Memory Probe (RAM/VRAM) ๐ง
For when RAM creeps up and ComfyUI wedges
- passthrough
- passthrough
- report
You know the failure: generation 40 of a batch works fine, generation 60 has the fans screaming, the machine starts swapping, and ComfyUI stops responding. VRAM said everything was fine. It was the host RAM, and by the time you notice, whatever was leaking has already been overwritten by whatever happened next.
Nova Memory Probe (RAM/VRAM) ๐ง is the tool for finding that. It reports host RAM and device VRAM at the exact point it sits in the graph, plus the delta since the last time that same probe ran. It was built for tracking host-RAM growth across repeated generations - the classic "RAM creeps up, dual-CLIP encode pegs at 99%, ComfyUI wedges" pattern - but it's just as useful the first time you want to know how much VRAM a node actually costs.
It measures. It does not mutate.
This is the important design constraint and it's worth stating plainly: the node never unloads anything, never empties a cache, never calls gc. It's safe to leave wired into a workflow you actually use - it will not change how the graph runs. There's plenty of "free VRAM" snake oil in node packs; this isn't one of them.
Inputs and outputs
- label - names the probe point, default
probe. History is tracked per label, so deltas compare like with like. Two probes with different labels each keep their own baseline; that's the feature, not a quirk. - detail -
compact,normalorfull.normalis the default;fulladds the deeper host breakdown and more VRAM detail. There's a glibc arena line that shows up in everything exceptcompact, which is genuinely useful on Linux when you're chasing a fragmentation-flavoured leak. - log_to_console - writes to the ComfyUI terminal.
- write_jsonl - off by default. Turn it on and every sample appends to
ComfyUI/output/nova_memory.jsonl, which is what you want if you're going to plot a run rather than eyeball one number. (Sample-by-sample text in a terminal is hard to reason about; a column in a file is not.) - passthrough - a wildcard input. Wire anything through it and out the other side to pin the probe to a point in the graph - that's the trick that makes this work, because otherwise this node has no data dependency and ComfyUI is free to execute it whenever it likes.
Outputs: passthrough (whatever you fed in, unchanged - so it's a true no-op in the data path) and report, the formatted text.
How to actually use it
Put one probe labelled start before your first model load, and another labelled after at the end of the chain, each with something real wired through passthrough. Run it ten times. Then read the deltas rather than the absolute numbers - that's where the leak shows up: a VRAM number that returns to baseline while the RAM number keeps climbing generation over generation is a host-side leak, and it's a different bug with a different fix from anything the VRAM axis tells you about.
Enable write_jsonl before you go hunting, not after. And remember the general shape of the underlying problem from the troubleshooting side of this hobby: shuffling weights between RAM and VRAM costs far more than it saves, because GPU bandwidth is an order of magnitude above PCIe. Diagnosing memory pressure is worth doing; "just offload everything" is not the fix it sounds like.
Install
ComfyUI Manager โ Nova Audio Player โ install โ restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/NovaFemme/ComfyUI-NovaAudioPlayer.git
Find it under โถ๏ธ Nova Audio โ ๐ ๏ธ Utility & IO. No dependencies - it reads system numbers through ctypes and torch, and degrades gracefully on platforms where some of that isn't available. Despite living in an audio pack, there is nothing audio-specific about it; if you're running a long image or video batch and want to know who's eating the RAM, it works fine there too.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| label | STRING | probe | Names this probe point. History is tracked per-label, so deltas compare like with like. |
| detail | COMBO | normal | 3 options: compact, normal, full |
| log_to_console | BOOLEAN | true | โ |
| write_jsonl | BOOLEAN | false | Append each sample to ComfyUI/output/nova_memory.jsonl for plotting. |
| passthroughopt | * | Wire anything through here to pin the probe to a point in the graph. Returned unchanged. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| passthrough | * | Whatever you fed in, unchanged. |
| report | STRING | The formatted report as text. |