Nodes/ComfyUI-TemporaryLoader/Checkpoint Loader (Temporary)
ComfyUI Node

Checkpoint Loader (Temporary)

Checkpoint Loader (Temporary)

By pkpkTech·Created 3 years ago·Updated 2 years ago· 2
Checkpoint Loader (Temporary)
    • MODEL
    • CLIP
    • VAE
    • CLIP_VISION
    ckpt_url
    ckpt_typeauto
    download_split4

    Every checkpoint loader in ComfyUI works the same way: pick a file from a dropdown, wait, generate. This one doesn't. Checkpoint Loader (Temporary) - class LoadTempCheckpoint - takes a URL and loads the model straight from it, into memory, never onto your disk. It's the node you reach for when you want to test a checkpoint someone linked before committing 7 GB of SDXL (or 12 GB of Flux) to a drive that's already groaning. That's the entire pitch: try the model, decide, and if you want it permanently, download it for real later.

    How it works

    It slots into the standard sampling graph exactly like the built-in loader, because under the hood it is the built-in loader. When you run the workflow, the node downloads the file in parallel chunks - download_split threads (default 4, up to 8) each pulling a byte range over HTTP Range requests - stitches the bytes back together in RAM, and hands them to ComfyUI's own model-loading code (comfy.model_detection, comfy.sd, comfy.clip_vision). Same code path a local load uses, just fed from a memory buffer instead of a path. You get a full checkpoint out: MODEL, CLIP, VAE, and even a CLIP_VISION output if the architecture carries one. MODEL goes into your sampler, CLIP into the text encoders, VAE into the VAE Decode. Nothing special to wire.

    The inputs that matter

    There are really only three inputs to care about:

    • ckpt_url - a direct link to the model file.
    • ckpt_type - auto (default) sniffs the file extension from the server's Content-Disposition header. If the server doesn't send one, auto guesses wrong, so safetensors or other forces it.
    • download_split - how many parallel download threads to use.

    Where people get burned

    Now the honest part, because this is where people get burned:

    The constraint is RAM, not disk. The raw file bytes and the parsed tensors live in system memory at the same time, so expect transient RAM of roughly 2–3× the file size. A 12 GB Flux checkpoint will happily eat most of a 32 GB box. If you bought more RAM specifically to avoid more disk, this node is your friend.

    It re-downloads every run. Unlike the pack's LoRA nodes, LoadTempCheckpoint keeps no cache - each execution fetches the URL again. A slow link means a slow workflow, every time. Use it for testing, not for your daily driver.

    Split downloads can corrupt on servers that ignore Range headers. Some CDNs return the whole file to every thread instead of the requested byte range, and the reassembly silently produces garbage - you'll see a "Could not detect model type" error. Drop download_split to 1 and it works.

    How to install

    Install is the pack standard: ComfyUI Manager, search "ComfyUI-TemporaryLoader," or cd ComfyUI/custom_nodes && git clone https://github.com/pkpkTech/ComfyUI-TemporaryLoader, then pip install -r requirements.txt (the only dependency is requests) and restart. The nodes land under the temporary_loaders category.

    A note on trust

    One last thing: you're downloading and unpickling whatever that URL serves. Redirects are followed (HuggingFace resolve links work), so only paste URLs you trust - same rule as dropping a random .ckpt into your models folder, but easy to forget when it's just a link in chat.

    Categorytemporary_loaders

    Inputs (3)

    NameTypeDefaultDescription
    ckpt_urlSTRING
    ckpt_typeCOMBOauto3 options: auto, safetensors, other
    download_splitINT41–8

    Outputs (4)

    NameTypeDescription
    MODELMODEL
    CLIPCLIP
    VAEVAE
    CLIP_VISIONCLIP_VISION