Smart Hardware Monitor
Watch CPU, RAM, VRAM and temps from inside the workflow
- hw_info
Smart Hardware Monitor is the "why is my Wan render swapping" diagnostic. It samples your CPU usage, RAM, VRAM, and (where the OS lets it) CPU and GPU temperatures, and prints a snapshot as a text block in the UI. It's an output node, so it doesn't need to connect to anything - drop it on the canvas, queue, and read the report.
The honest pitch: most of the useful half of this node is nvidia-smi and psutil doing the heavy lifting, wrapped up so the reading lands in your workflow instead of a terminal. If you already watch VRAM in Task Manager, this saves you tabbing out. The genuinely nice part is that it can run in the pipeline - wire its output into SmartSaveText and you get a hardware log alongside each render.
How it works
On execution it samples whatever you've toggled on and prints a header with the current time, then the metrics. VRAM and GPU temperature come from nvidia-smi (or AMD's sensor paths), CPU usage and RAM come from psutil, and CPU temperature is a whole cascade: psutil sensors, then WMI/PowerShell probes on Windows, then /sys/class/thermal zones on Linux. The refresh_rate input (1–60 seconds) controls how often the node re-executes - it fakes a "changed" result on that cadence so you can sit and watch it update during a long render.
The defaults are all-on: CPU temp, GPU temp, RAM, CPU usage, VRAM. Each has its own boolean, so you trim the report to what you actually care about.
The inputs that matter
refresh_rate- seconds between refreshes (1–60, default 1).- The five include toggles:
include_cpu_temp,include_gpu_temp,include_ram,include_cpu_usage,include_vram.
Output: hw_info (STRING).
The gotcha: CPU temperature is often "Not available"
This is the node's dirty secret and it's mostly not the author's fault. Windows locks down direct sensor reads, so on a typical Windows box CPU temp shows as unavailable unless you install OpenHardwareMonitor or HWiNFO with shared memory - the node literally prints these instructions when it fails. On Linux it needs lm-sensors and the coretemp module loaded. GPU temp, by contrast, usually just works via nvidia-smi. Read a missing CPU temp as "your OS doesn't hand that out for free," not a broken node.
Installing it
It's part of SmartHelperNodes, so install the pack once:
cd ComfyUI/custom_nodes
git clone https://github.com/slvslvslv/ComfyUI-SmartHelperNodes
Restart ComfyUI, or install via ComfyUI Manager ("SmartHelperNodes"). The pack has no required pip dependencies; psutil is used if present and gracefully skipped if not. If RAM/CPU usage shows "psutil not available," install it: pip install psutil.
Where it actually helps
Wan 2.2 14B dual-pass is the case study - two models in flight, heavy offloading, VRAM as the bottleneck. A VRAM readout that updates in-workflow tells you whether the slow render is genuine sampling or the model being shuffled to and from RAM every pass. For that alone, this node earns its place in a video workflow.
Common issues
The refresh cadence only fires when the node is in an executing graph - it's a snapshot node, not a live dashboard, so a queue that's not running gives you a static reading. And the report is one string, so if you log it to a file every run you'll build up a nice history; if you only want the latest, point it at a fresh filename.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| refresh_rate | INT | 11–60 | Refresh rate in seconds for hardware monitoring |
| include_cpu_temp | BOOLEAN | true | Include CPU temperature in output |
| include_gpu_temp | BOOLEAN | true | Include GPU temperature in output |
| include_ram | BOOLEAN | true | Include RAM usage in output |
| include_cpu_usage | BOOLEAN | true | Include CPU usage percentage in output |
| include_vram | BOOLEAN | true | Include VRAM usage in output |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| hw_info | STRING | — |