Nodes/Model Utility Toolkit/ControlNet Info Loader
ComfyUI Node

ControlNet Info Loader

ControlNet Info Loader — untangle a folder of identically-named ControlNets

By silveroxides·Created about a year ago·Updated 4 days ago· 14
ControlNet Info Loader
    • preview
    • workflow_json
    • metadata_json
    controlnet
    workflow_index0

    ControlNet files have a naming problem. Download enough of them and you end up with a stack of files called diffusion_pytorch_model.safetensors or control_v11p.safetensors, each renamed by hand at some point, each targeting a different preprocessor (canny, depth, openpose, tile) and a different base architecture (SD 1.5, SDXL, Flux), and after a few months you genuinely can't tell them apart by looking. This node is the fix: point it at a file and it hands back the preview image, the workflow that generated it, and the raw metadata - the model-page experience, without leaving ComfyUI.

    It's one of the four ModelUtils/Info loader nodes in silveroxides' ComfyUI-ModelUtils, the same pattern applied to checkpoints, VAEs, embeddings, and diffusion models: this one just points at your ControlNets folder instead. ControlNet itself is arguably the highest-leverage technique in this whole ecosystem after basic prompting - it's what gives you actual spatial control over composition that text alone can't reach - which is exactly why people accumulate a pile of ControlNet variants for different preprocessors and end up needing something like this to keep track of them.

    How it works. It reads locally cached metadata rather than hitting the network on demand. That cache is populated by this pack's matching downloader node, ControlNetInfoMetaDownloader, which scans your ControlNets folder and pulls down whatever's available for each file. This loader is purely the read side of that pair - run the downloader first, browse with this one after.

    Inputs that matter. controlnet is a dropdown built from your local ControlNet files - nothing to type. workflow_index (default 0, range 0–100) is the one you'll adjust: it picks which cached example to surface, for files that have more than one on record.

    Outputs. preview (IMAGE) - the example render for that index, which for a ControlNet is genuinely diagnostic, since it usually shows you the exact kind of conditioning (a canny edge map, a depth map, a pose skeleton) the file expects as input. workflow_json (STRING) is the full workflow behind that example - worth pulling if you want to see how someone actually wired the preprocessor and the Apply ControlNet node together, rather than guessing. metadata_json (STRING) is the model's own description and metadata.

    Installing it. Through ComfyUI Manager, searching "Model Utility Toolkit," or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/silveroxides/ComfyUI-ModelUtils
    

    Restart ComfyUI afterward. This node doesn't require downloading anything beyond the pack itself - it only reads models you already have.

    Troubleshooting. Empty outputs mean no metadata was ever cached for that file - this node reads, it doesn't fetch, so run ControlNetInfoMetaDownloader against your ControlNets folder first if you haven't. Beyond that, the usual ControlNet gotcha applies regardless of this node: a preview and workflow showing up doesn't tell you the file is compatible with your current base model. ControlNets are architecture-locked the same way LoRAs are - an SDXL ControlNet does nothing useful loaded against a Flux checkpoint - so check what metadata_json says the intended base model is before you assume a nicely populated preview means the file will just work in your pipeline.

    CategoryModelUtils/Info

    Inputs (2)

    NameTypeDefaultDescription
    controlnetCOMBO0 options:
    workflow_indexINT00–100

    Outputs (3)

    NameTypeDescription
    previewIMAGE
    workflow_jsonSTRING
    metadata_jsonSTRING