Nodes/ComfyUI-easygoing-nodes/Load Original Model
ComfyUI Node

Load Original Model

The loader that remembers what your model looked like before you edited it

By easygoing0114·Created 12 months ago·Updated 5 days ago· 5
Load Original Model
    • original_model
    • model
    unet_name
    weight_dtypedefault

    If you've ever edited a model in ComfyUI, saved it, and gotten back a file that ComfyUI won't load cleanly, you've hit the two problems this node exists to solve. ComfyUI's save path is lossy in sneaky ways: it prepends an internal prefix like diffusion_model. to key names so they no longer match the original file's keys, and it only carries the tensors the workflow actually touched, silently dropping the rest. Load Original Model sidesteps both by reading the safetensors file raw - preserving the original keys, every tensor, and the file's metadata - while also loading the same file normally as a usable MODEL.

    How it works

    For a given file, it does two independent things at once:

    1. Raw read. It loads the full state dict off disk with safetensors.torch.load_file, keeping every key exactly as authored, plus the file's metadata. That complete, untouched tensor set - wrapped with its source path and metadata - is emitted as the custom original_model output.
    2. Normal load. It also runs the same file through ComfyUI's standard diffusion-model loader, producing the ordinary model output you can actually run.

    The weight_dtype input (default / fp32 / fp16 / bf16) applies to both paths. It searches models/diffusion_models first, then models/checkpoints, so a single dropdown covers both folders.

    Why you'd use it

    This node never does anything alone - it's the front half of the save-with-original loop. The flow is:

    1. Load Original Model → raw original_model + editable model.
    2. Run the model through the pack's scale or merge nodes (or any model-editing node).
    3. Feed both the edited model and the untouched original_model into Model Save with Original, which merges them back and writes a file that keeps the original key layout and restores any tensors ComfyUI dropped.

    Without the raw read, the save node would have nothing to restore from - you'd get back the same lossy, prefix-mangled file you started with. This loader is what makes re-saving an edited model actually round-trip.

    Install

    Search Easygoing in the ComfyUI Manager, or clone it:

    cd ComfyUI/custom_nodes
    git clone https://github.com/easygoing0114/ComfyUI-easygoing-nodes.git
    

    Restart ComfyUI. No pip extras; needs a current ComfyUI with the V3 node API or the pack won't register.

    The honest caveats

    The raw read happens on CPU and keeps a full copy of the model in RAM, so on a big model (a 20B diffusion transformer, say) that's a real memory cost - a few GB on top of everything else. That's the price of being able to restore missing tensors later, and it's why you only keep this node in the graph while you're doing save work, not in your daily generation workflow. Also note the raw side of this node is not something you can run - original_model is a custom type that only plugs into Model Save with Original, not into a sampler. If all you want is a loader, the pack's plain Load Diffusion Model (with Name Clean) is the one for daily use; this one's for the edit-and-resave job specifically.

    Categoryloaders

    Inputs (2)

    NameTypeDefaultDescription
    unet_nameCOMBO0 options:
    weight_dtypeCOMBOdefault4 options: default, fp32, fp16, bf16

    Outputs (2)

    NameTypeDescription
    original_modelORIGINAL_MODEL
    modelMODEL