Nodes/ComfyUI-Model-Installer/ComfyUI Model Installer Scan Workflow
ComfyUI Node

ComfyUI Model Installer Scan Workflow

The Node That Reads Your Workflow's Mind and Lists Every Model It Needs

By arleckk·Created 6 months ago·Updated 6 months ago· 7
ComfyUI Model Installer Scan Workflow
    • assets_json
    • count

    You load a shared workflow, hit Queue, and ComfyUI silently reds out a loader because a model file doesn't exist on your machine. That's the missing-models half of ComfyUI dependency hell - ComfyUI Manager solves the missing-nodes half, but it can't install a checkpoint you don't have. ComfyUIModelInstallerScanWorkflow is the part of ComfyUI Model Installer that tells you which models you're missing, before you waste an afternoon discovering them one at a time.

    Drop it on the canvas, and it reads the current workflow graph, digs out every model reference it can find, and hands you two outputs: assets_json - a pretty-printed JSON manifest of all detected assets - and count, the number of assets found. No inputs to set. No parameters to misconfigure. It's the closest thing to "export a shopping list of my workflow's models" that the ecosystem ships.

    How it works

    The node gets the entire workflow graph from ComfyUI through a hidden PROMPT input - you never see the wire, the framework just passes it in. Its run() then calls collect_assets(), the pack's scanner, which hunts for model references in three places:

    • properties.models metadata - structured model info embedded in workflow nodes (name, URL, target directory). Highest confidence.
    • MarkdownNote / Model Links - note nodes titled something like "Model Links" or "Required Models" that contain URLs; it parses links and guesses the target folder.
    • Inferred loader nodes - the workhorse. It knows the standard loaders and maps each to a folder: CheckpointLoaderSimplecheckpoints, LoraLoaderloras, VAELoadervae, CLIPLoadertext_encoders, UNETLoaderdiffusion_models, ControlNetLoadercontrolnet, UpscaleModelLoaderupscale_models, and more.

    Results are deduplicated (metadata beats a note beats an inference) and sorted by folder. For inferred assets the URL is empty - that's expected; actual resolution to a download link happens in the pack's Model Installer panel, which uses a local cache, an optional known_models.json catalog, then Hugging Face search.

    The outputs and what to do with them

    • assets_json (STRING) - the manifest, indented JSON. Wire it into a Show Text node to eyeball it, or into any string consumer.
    • count (INT) - number of assets. Handy for a quick conditional: a workflow with count == 0 has nothing the scanner recognizes, which usually means custom loader nodes, not "no models."

    Realistic use: download someone's workflow, add this node, and know exactly what to fetch before you queue. It's also great for auditing your own workflows - you'll be surprised what undocumented LoRAs they quietly depend on.

    Installing it

    Same as the rest of the pack, done once:

    • ComfyUI Manager - search for ComfyUI-Model-Installer, or
    • Manually - cd ComfyUI/custom_nodes && git clone https://github.com/arleckk/ComfyUI-Model-Installer, restart ComfyUI.

    Dependencies are just requests and huggingface_hub from requirements.txt - no heavy install. Gated Hugging Face repos need an HF_TOKEN (or hf auth login) or you'll hit 401; public models don't.

    Common issues

    A count of 0 is the usual confusion - it doesn't mean your workflow has no models, it means the scanner didn't recognize any loader, metadata, or model-link note. Custom loader packs won't be inferred yet, so don't treat zero as proof of anything. Ambiguous model names can also resolve to no or wrong candidates; the pack shows a resolve dialog so you can pick manually, and confirmed picks get cached for next time. And remember: this node only reports. For the actual install, progress bars, and cancellation, you use the Model Installer button in the top bar - this node is the reconnaissance, the panel is the logistics.

    Categoryutils/model_installer

    Inputs (0)

    No inputs

    Outputs (2)

    NameTypeDescription
    assets_jsonSTRING
    countINT