Registry Snapshot
The whole VRAM residency registry, dumped to JSON
- registry_json
Registry Snapshot is the pack's big-picture observability node: no inputs, one output, and that output is a formatted JSON dump of everything the residency system currently knows. It's the "show me all of it" node, the one you reach for when you want to understand what ComfyUI is holding in VRAM and why.
The output (registry_json) is a composite payload with three sections:
policy- the active global residency policy (legacy,balanced,prefer_gpu, orsticky_gpu).entries- the native registry: every tracked ComfyUI-managed object. Each entry carriesentry_id,kind,source_path/basename,sticky,priority,created_at,last_touched,loaded_bytes/total_bytes,load_device,offload_device,current_device,last_method, andalive. Thelast_methodfield is gold for debugging - it records whether each load used direct safetensors GPU ingest, a CPU-to-CUDA fallback, a component-only load, the CPU-firsttorch.load()path, or a failure.external_entries- compatible external cache objects discovered at runtime, currently SeedVR2's global cached DiT and VAE entries. These live outside ComfyUI's normalcurrent_loaded_modelslist, so this is the only way to see those bytes at all. External entries carry cache-specific fields likecache_key,claimed(true = the cache object is currently in use), andexternal.
Two things make this node genuinely different from just watching nvidia-smi. First, it shows which objects are resident and how they got loaded, not just how many bytes are free - that's the difference between "I'm out of VRAM" and "my .ckpt has been CPU-loading the whole time." Second, it surfaces external cache entries that standard tools can't see, because those objects never pass through ComfyUI's loaded-model list.
The practical habit: connect it to a text display node, run once, read. Use Report Model/CLIP/VAE Residency when you care about one object; use this when you want the full landscape - e.g., after switching policies, to confirm the sticky_gpu auto-pins actually happened, or before a big load, to see what's going to get evicted. There's no other way to see the registry's priority ordering in one place.
Caveats, honestly stated: this only reflects objects the registry tracks - loads through private third-party paths are invisible, and for external providers the coverage is currently SeedVR2-specific, not universal. The byte figures are estimates from file headers and runtime metadata, not nvidia-smi truth. And it's a point-in-time dump; it doesn't stream or update live, so treat it as a snapshot (the name gives it away).
Install with the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/xmarre/ComfyUI-GPU-Resident-Loader
cd ComfyUI-GPU-Resident-Loader
pip install -r requirements.txt
Restart ComfyUI, or search "comfyui-gpu-resident-loader" in ComfyUI Manager.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| registry_json | STRING | — |