Nodes/ComfyUI-KikoStats/Resource Monitor
ComfyUI Node

Resource Monitor

Finally, a monitor that tells you which node is eating your VRAM

By ComfyAssets·Created about a year ago·Updated 9 months ago· 8
Resource Monitor
    • stats
    • json_data

    ComfyUI's console will happily tell you how long the whole run took. What it won't tell you is that your VAE Decode is the reason every generation crawls, or that one node is quietly hoarding 6GB of VRAM. KikoStats's Resource Monitor is built for exactly that second question: live GPU/CPU stats plus per-node execution tracking, all rendered in a widget embedded right in the node.

    The quick pitch: most monitoring tools - Crystools, Elegant Monitor - tell you what the machine is doing. KikoStats also tells you what each node did: how long it ran, its average CPU and GPU utilization, and its peak VRAM. If you've ever stared at a slow workflow wondering whether KSampler or the upscale step is the bottleneck, that's the question this answers. It's a young pack - v0.1.3, published under the ComfyAssets org by "kiko9" - but it got picked up fast by people hunting for exactly this; a user in an r/comfyui thread on per-node VRAM stats recommended it right alongside ComfyUI_ProfilerX.

    How it works

    Two things happen when it installs, and both start on their own:

    1. A global background monitor thread starts when ComfyUI loads. Every second or so it samples GPU stats via NVIDIA's Management Library (pynvml - the same API nvidia-smi uses): utilization, VRAM used/total, temperature, power draw. System stats come from psutil (CPU %, RAM). It's thread-safe and non-blocking, with the author claiming under 0.5% CPU overhead. There's no workflow needed - the numbers are live the moment ComfyUI is up.

    2. It monkey-patches ComfyUI's executor. The pack wraps PromptExecutor.execute_node so it starts sampling CPU/GPU when each node begins and, when the node finishes, writes up duration, avg/max utilization, and peak VRAM. That wrapped data is what feeds the expandable "Node Performance" list.

    The node itself (surprise: it has no inputs)

    Here's the part that'll trip you up: the README's table lists inputs like update_interval, display_mode, enable_gpu, and enable_system. None of them exist in the shipped code. The actual ResourceMonitor node has zero inputs - the schema on comfy.icu and the source both confirm it. The author clearly intended configurable knobs; what shipped is a pure display widget. Don't go hunting for settings that aren't there.

    What it does give back:

    • stats (STRING) - always an empty string. All the human-readable display is drawn by the embedded JS widget, not passed through the output port.
    • json_data (STRING) - the latest stats as JSON: timestamp, plus gpu (utilization, memory_used/total, temperature, power_draw) and system (cpu_percent, ram). If you want monitoring data chained into other nodes, this is the one to wire up.

    So: drop it on the canvas, watch the embedded widget update in real time over WebSocket, run a workflow, and expand the performance list. No wiring required - it's a dashboard that happens to live in your graph.

    Installing it

    It's registered with the Comfy Registry, and a Reddit commenter confirms it shows up in Manager - so the easy route is ComfyUI Manager → Install Custom Nodes → search "ComfyUI-KikoStats". (The README still claims Manager support is "coming soon"; that's stale, it works.) Or clone it:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/ComfyAssets/ComfyUI-KikoStats.git
    cd ComfyUI-KikoStats
    pip install -r requirements.txt
    

    Dependencies are light - just nvidia-ml-py and psutil. No model files, no heavy installs, nothing to download beyond that.

    Troubleshooting & gotchas

    • GPU stats read "Not Available" - this is NVIDIA-only. pynvml needs an NVIDIA GPU with working drivers; verify with nvidia-smi. On AMD/Intel cards you get CPU/RAM stats and nothing else.
    • System stats read "Not Available" - psutil didn't install. pip install psutil.
    • Per-node tracking never appears - watch the console at startup. If you see "Could not install execution hooks - per-node tracking disabled", the monkey-patch didn't take. This is the pack's fragile point: it reaches into ComfyUI internals, and a ComfyUI update (see what Nodes 2.0 did to a lot of packs) can silently break it. It degrades gracefully - real-time stats still work - but the headline feature goes quiet.
    • Node missing entirely - the classic: restart ComfyUI completely, confirm the folder is at ComfyUI/custom_nodes/ComfyUI-KikoStats/, and check the console for import errors.

    One honest caveat before you trust the numbers: it samples rather than instruments, so per-node CPU/GPU figures are estimates, and the community verdict is that it reports percentages rather than absolute MB. For a rough "which node is my bottleneck" it's more than good enough. For pixel-accurate profiling, keep a proper profiler around as backup.

    Category🫶 ComfyAssets/🛠️ Utils

    Inputs (0)

    No inputs

    Outputs (2)

    NameTypeDescription
    statsSTRING
    json_dataSTRING