Nodes/ComfyUI Model Downloader/Load Downloaded Checkpoint
ComfyUI Node

Load Downloaded Checkpoint

Load a checkpoint by filename, right after it downloads

By ciri·Created 2 years ago·Updated 28 days ago· 126
Load Downloaded Checkpoint
    • model
    • clip
    • vae
    filename

    ComfyUI's built-in checkpoint loader picks a file from a dropdown - a list of whatever's already sitting in your checkpoints folder. That's fine until you're downloading a model in the same workflow run, which is the entire premise of this pack: a file that just landed on disk from CivitAI Downloader or HF Downloader usually isn't in that dropdown yet, because ComfyUI built the list before the download happened. Downloaded Checkpoint Loader exists to close that gap - it takes the filename as a plain string instead of a pre-built dropdown, so you can wire it directly to whatever just downloaded and load it in the same queue, no browser refresh or restart required. It's the piece that turns "fetch a model" and "load a model" into one continuous pipeline instead of two separate sessions.

    How it works

    Give it a filename, it resolves and loads that checkpoint the normal way, then splits it into the three components every ComfyUI generation graph is built around.

    The input and outputs that matter

    There's one input: filename - a plain string, required. You can type a name in by hand if the file's already on disk, but the actual point of this node is wiring the filename output of CivitAI Downloader or HF Downloader straight into it. That way the name always matches exactly what was just fetched - no retyping, no risk of a typo breaking the match.

    Three outputs come out the other side, and they're the standard trio: model, clip, and vae. They wire in exactly the same places the built-in checkpoint loader's outputs do - model into your sampler (KSampler and friends), clip into your CLIP Text Encode nodes for prompting, vae into VAE Decode. If you've ever used ComfyUI's default checkpoint loader, the downstream wiring here is identical; the only thing that changed is how the node gets told which file to load.

    Installing it

    Via ComfyUI Manager: search "ComfyUI Model Downloader", install, restart. Or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ciri/comfyui-model-downloader.git
    

    Restart ComfyUI afterward.

    Common issues

    Filename doesn't match what's on disk. This node isn't fuzzy about it - the string has to match the actual file, extension included, in the folder it was actually saved to. If you're typing the filename by hand instead of wiring it from a downloader node upstream, that's your most likely failure point. Wire it instead of retyping it whenever you can.

    Racing the download. The checkpoint has to actually finish downloading before this node can load it. If filename is properly wired to a downloader node's output, ComfyUI's own execution order handles the sequencing for you - the load simply can't run until the download node has produced its output. The failure mode shows up when the fields are left disconnected and you type in a filename for something that hasn't downloaded yet: you'll get a plain file-not-found, not a "still downloading" message.

    Legacy .ckpt files. If whatever you downloaded is an old-style .ckpt rather than .safetensors, it'll still load fine here - but .ckpt uses Python's pickle format, which can execute arbitrary code on load. It's worth preferring the .safetensors version when a model offers both, a decision that's really made back at the download step (CivitAI Downloader / HF Downloader), not this one.

    Nothing visibly happens. This node isn't an output node - it just prepares model/clip/vae for the rest of your graph. You won't see anything until whatever's downstream (sampler, VAE decode, save image) actually runs.

    Categoryloaders

    Inputs (1)

    NameTypeDefaultDescription
    filenameSTRING

    Outputs (3)

    NameTypeDescription
    modelMODEL
    clipCLIP
    vaeVAE