Nodes/comfyui-gpu-resident-loader/Report Model Residency
ComfyUI Node

Report Model Residency

Ask the registry what's actually happening with your model

By xmarre·Created 5 months ago·Updated 5 months ago· 2
Report Model Residency
  • model
  • report_json

Report Model Residency is a diagnostics node: you pass it a MODEL and it returns a JSON report of everything the residency registry knows about that object. Is it sticky? What priority? What device is it actually on right now, and how many bytes does it think the model occupies? This is the "stop guessing, look at the state" tool for the GPU Resident Loader pack.

The report comes back as a single STRING output (report_json), ready to feed a text-display node or any JSON-handling custom node. Typical fields it can include: entry_id, kind, source_path / basename, sticky, priority, created_at, last_touched, loaded_bytes / total_bytes, load_device, offload_device, current_device, last_method, and alive. If the model isn't bound in the registry at all, you get a JSON payload with tracked: false.

The last_method field is the one that makes this genuinely useful. It tells you how the model actually got loaded - direct safetensors GPU ingest, safetensors CPU-to-CUDA fallback, component-only load, the CPU-first torch.load() compatibility path for pickle files, or a recorded load failure. That's exactly the information you need when something feels slow: is my .ckpt silently going through the CPU-first path? Is the .safetensors actually getting the direct GPU read it's supposed to? One report answers both.

The only input is model. No knobs, no toggles - this node exists purely to observe.

Two things to understand about scope. First, it only reports on objects the registry actually tracks - models loaded through this pack's resident loaders or ComfyUI's patched load paths. A model loaded through some third-party node's private code path won't be tracked, and you'll get tracked: false rather than a useful report. Second, the numbers are the registry's bookkeeping - bytes are estimates from the file header and runtime metadata, not a substitute for nvidia-smi if you're chasing a real OOM.

Where this earns its keep: any time you're wondering whether residency is actually doing what you think. Set up a pin, preload a model, switch policies - then drop one of these in and read the state. It pairs with Registry Snapshot (the whole-registry view) when you want to see how one model fits into the bigger picture. If you don't care about any of that, you don't need it - but when a resident workflow misbehaves, this is the first place I'd look.

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.

CategoryGPU Resident Loader/residency

Inputs (1)

NameTypeDefaultDescription
modelMODEL

Outputs (1)

NameTypeDescription
report_jsonSTRING