Nodes/ComfyUI-Texturaizer/Cached Checkpoint (Texturaizer)
ComfyUI Node

Cached Checkpoint (Texturaizer)

A checkpoint loader that skips the reload when nothing changed

By LatentSpaceDirective·Created 2 years ago·Updated 8 months ago· 21
Cached Checkpoint (Texturaizer)
    • model
    • clip
    • vae
    ckpt_name

    On the surface this looks like a plain checkpoint loader - pick a file, get back a model, a CLIP, and a VAE. The "cached" in the name is the actual point: in a workflow where the same checkpoint gets loaded over and over across rapid, repeated renders - exactly what happens when you're iterating from Blender's viewport, queuing generation after generation without changing the model - reloading the same multi-gigabyte file from disk every single time is wasted time. A cached loader keeps the last-loaded checkpoint in memory and only re-reads the file when the name actually changes.

    How it works

    Functionally it's the same contract as ComfyUI's stock Load Checkpoint node: give it a checkpoint filename, get back the three components a diffusion workflow needs. The difference is entirely about what happens between calls - where a normal loader has no memory of what it loaded last time, a cached one checks whether the requested checkpoint is the same as what's already resident and skips the disk read (and the deserialization cost) if so. That's a real, meaningful saving on a workflow that fires generation after generation with the checkpoint held constant, which is the common case when you're driving ComfyUI from Blender rather than manually queuing prompts one at a time in the UI.

    The inputs and outputs that matter

    • ckpt_name - the checkpoint filename, picked from your ComfyUI/models/checkpoints folder (the schema exposes this as an enum populated from your model directory, same as any stock checkpoint loader).

    Outputs:

    • model - "The model used for denoising latents," per the tooltip.
    • clip - "The CLIP model used for encoding text prompts."
    • vae - "The VAE model used for encoding and decoding images to and from latent space."

    Wire all three exactly like you would from a standard Load Checkpoint node - model into your sampler, clip into your text encode, vae into your VAE decode.

    Installing it

    ComfyUI Manager → search Texturaizer → Install → restart, or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer
    

    then restart ComfyUI. No extra dependencies, and nothing to download for the node itself - it loads whatever checkpoint files you already have.

    Where people get burned

    The one thing worth knowing about any cache like this: if you overwrite a checkpoint file on disk without renaming it (re-exporting a merge under the same filename, say) and then re-queue a workflow that hasn't changed the ckpt_name value, a cached loader can keep serving you the old, in-memory version instead of noticing the file changed. That's speculative - the README doesn't document the cache invalidation logic in detail - but it's the standard failure mode for any loader that trades a disk read for an in-memory shortcut, and it's worth ruling out first if a checkpoint update "isn't taking" after a swap. On comfy.icu and other serverless setups where each run gets a fresh container anyway, the caching benefit mostly disappears - there's no warm memory to reuse between cold starts - so this node behaves close to a plain checkpoint loader there regardless.

    CategoryTexturaizer

    Inputs (1)

    NameTypeDefaultDescription
    ckpt_nameCOMBO0 options:

    Outputs (3)

    NameTypeDescription
    modelMODELThe model used for denoising latents.
    clipCLIPThe CLIP model used for encoding text prompts.
    vaeVAEThe VAE model used for encoding and decoding images to and from latent space.