Nodes/ComfyUI-Cyberdelia-Quantizer/πŸ”Ž Cyberdelia Quant Check
ComfyUI Node

πŸ”Ž Cyberdelia Quant Check

Is that checkpoint actually quantized? A header-only health check for ComfyUI quant files

By cyberdeliaAIΒ·Created a day agoΒ·Updated a day agoΒ· 1
πŸ”Ž Cyberdelia Quant Check
    • report
    β—„model_nameβ–Ύβ–Ί

    You download a checkpoint, drop it in models/diffusion_models, and the loader throws something cryptic - or worse, loads it and quietly generates with the wrong dtype. "What did I actually download?" is a five-minute rabbit hole when the answer is a 30-second check. That's the whole job of Cyberdelia Quant Check: it reads a model's header and tells you, in plain text, what kind of file you're holding.

    It ships in the same pack as the 🍳 Cyberdelia Quantizer, and honestly the two are a natural pair: inspect a file to see what state it's in, convert it if it's dense, then inspect the output to confirm the conversion landed the way you expected.

    What it checks

    The clever bit is that it does all of this without loading the weights into RAM. It opens the safetensors header, reads the keys and the tiny JSON markers, and closes it again. A 24 GB model takes a second or two to check, because you're reading kilobytes, not gigabytes.

    It looks for three ways a checkpoint can declare itself, and reports which one it found:

    • Exact per-layer .comfy_quant packaging - the modern, native layout where each quantized weight has a marker and scale tensors sitting next to it under the exact physical layer name. If it finds these and validates them, you get an OK line confirming the file is ComfyUI/Forge Neo compatible.
    • Legacy central _quantization_metadata - the older layout: one JSON blob in the file metadata mapping stripped layer names (no model.diffusion_model. prefix) to their quant state. This is the layout that causes the classic prefix-mismatch bug where Forge Neo reads an INT8 file as FP16 and dies on unexpected SingleStreamDiT keys. The inspector reports it as LEGACY if the names line up exactly, and RISK if it finds prefix mismatches, missing layers, or ambiguous mappings.
    • Nothing at all - DENSE/UNMARKED: no quantization markers, you're holding a plain FP16/BF16 checkpoint, nothing to worry about.

    It also catches the corrupt edge cases: orphan .comfy_quant markers pointing at no weight, malformed metadata JSON, or markers whose side tensors went missing. Those come back as INVALID - useful when a hand-edited or truncated file refuses to load.

    Using it

    The node is almost aggressively simple: one required input (model_name, a dropdown of your diffusion_models folder) and one output - report, a string. It's an output node, so the text appears in a widget on your canvas. There are no knobs to misconfigure, no format to pick; you point it at a file and read the verdict.

    Two patterns actually earn their keep:

    1. Before you quantize - run it on the dense source to confirm it really is unmarked, so you're not about to stack a second lossy conversion on an already-quantized file. (The Quantizer rejects those itself, but it's nice to know before you plan a run.)
    2. After you convert - point it at the output and confirm you got the per-layer OK, not a legacy or half-written file.

    A warning born of the code, not the marketing: this is a safetensors-only checker. If your file is a .gguf, this isn't the tool you want - GGUF is a different container entirely and the inspector can't read it.

    Installing it

    Same pack, same install as its sibling. ComfyUI Manager β†’ search Cyberdelia Quantizer β†’ install β†’ restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/cyberdeliaAI/ComfyUI-Cyberdelia-Quantizer.git
    

    No extra dependencies - it leans on the safetensors that ships with ComfyUI, so no pip step and no model downloads. As long as your ComfyUI is reasonably current you're fine.

    Should you bother?

    Honest take: it's a narrow utility, not a daily driver, and it has zero community track record yet (the pack's v1.0.0 landed in September 2026). But "narrow" isn't "useless" - when a loader starts acting weird and you can't tell if the file is broken or your setup is, this turns "why" into a two-second answer instead of an hour of guessing. That's a node worth keeping one click away.

    CategoryCyberdelia/Quantization

    Inputs (1)

    NameTypeDefaultDescription
    model_nameCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    reportSTRINGβ€”