Nodes/Nova Audio Player/Nova Memory Probe (RAM/VRAM) ๐Ÿง 
ComfyUI Node

Nova Memory Probe (RAM/VRAM) ๐Ÿง 

For when RAM creeps up and ComfyUI wedges

By NovaFemmeยทCreated 20 days agoยทUpdated 2 days agoยท 0
Nova Memory Probe (RAM/VRAM) ๐Ÿง 
  • passthrough
  • passthrough
  • report
โ—„labelprobeโ–บ
โ—„detailnormalโ–บ
โ—„log_to_consoletrueโ–บ
โ—„write_jsonlfalseโ–บ

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, normal or full. normal is the default; full adds the deeper host breakdown and more VRAM detail. There's a glibc arena line that shows up in everything except compact, 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.

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

Inputs (5)

NameTypeDefaultDescription
labelSTRINGprobeNames this probe point. History is tracked per-label, so deltas compare like with like.
detailCOMBOnormal3 options: compact, normal, full
log_to_consoleBOOLEANtrueโ€”
write_jsonlBOOLEANfalseAppend 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)

NameTypeDescription
passthrough*Whatever you fed in, unchanged.
reportSTRINGThe formatted report as text.