ComfyUI Node

Insight Status

A one-string health check for ComfyUI-CustomNodePacks' error overlay

By Code2Collapse·Created 6 months ago·Updated a day ago· 52
Insight Status
    • status

    Insight Status is the "is the machinery alive?" node for a feature most of the pack's users will never directly see. The pack's Insight system is a diagnostic overlay: it wraps ComfyUI's graph executor so that every node run gets telemetry - VRAM delta, wall-clock milliseconds, and a human-readable hint when a node throws (like "CUDA ran out of VRAM - lower batch size" instead of a raw stack trace). Those events stream to the frontend as heatmap overlays. This node's entire job is to tell you, in one string, whether that wrap is installed and what the current memory state is.

    It's part of ComfyUI-CustomNodePacks, the ~72-node pack from Code2Collapse (Likhith-24, active on r/comfyui), in the C2C/Diagnostics category - the author's toolkit for making a confusing workflow less confusing.

    How it works

    The node takes no inputs - you just drop it in the graph and read the status string. It runs two checks:

    1. insight_installed=… - whether the Insight executor wrap managed to attach itself to ComfyUI's execution module. This is the important number. The Insight feature installs by monkey-patching comfy.graph_execution.GraphExecution.execute (or the closest analogue it can find for your ComfyUI version). If ComfyUI updates and moves that module, the wrap can't attach - and the node tells you, rather than you discovering the heatmaps silently stopped appearing.
    2. A memory snapshot - on CUDA, free=…/total=… alloc=… peak=…; on CPU-only builds, just cpu.

    There's exactly one input (empty required) and one output: status (STRING). Wire it to a text display, log it, or just read the node's preview - its purpose is to be a single glanceable health line.

    Why you'd actually use it

    If you never look at the Insight overlay, you don't strictly need this node. But two cases make it earn its place:

    • You want to know if the error-hint layer is active. That's the feature where a failed node produces "CUDA out of VRAM - lower batch size, enable --lowvram" instead of a wall of traceback. If you rely on those hints, this node tells you the moment a ComfyUI update silently breaks the wrap.
    • You're debugging memory. The alloc= / peak= numbers are useful mid-workflow: drop the node, run a heavy pass, and read whether peak allocation is creeping toward the free number.

    Installing it

    Ships in ComfyUI-CustomNodePacks. ComfyUI Manager → search "CustomNodePacks", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Code2Collapse/ComfyUI-CustomNodePacks.git
    

    No models, no extra dependencies beyond what the pack needs globally (opencv-python>=4.7.0, scipy>=1.10.0 - install just those if missing, not the full requirements.txt, which can clobber ComfyUI's torch). The Insight wrap itself is best-effort by design: the pack catches any failure to attach and never blocks the graph on it. Restart ComfyUI.

    Common issues

    • insight_installed=False - the wrap couldn't attach, usually a ComfyUI update moving the execution module. The pack degrades gracefully (no heatmaps, no hints), so your workflows still run - you just lose the diagnostic layer until the pack catches up.
    • cpu instead of CUDA stats - you're on a CPU-only build, or CUDA isn't visible to this process. Nothing is wrong; there's just no GPU to report.
    • The node says things are fine but errors still confuse you - the hints cover a lookup table of common exceptions (missing package, OOM, shape mismatch, None from a loader). Exotic errors still come through raw. That's a feature of the feature, not a bug.

    The honest take: this is a self-diagnostic node for a diagnostic system - the pack checking its own pulse. It's not exciting, and you can absolutely ignore it. But when a ComfyUI update lands and errors get cryptic again, it's the first place to look.

    CategoryC2C/Diagnostics

    Inputs (0)

    No inputs

    Outputs (1)

    NameTypeDescription
    statusSTRING