ComfyUI Node

DINOv3 Loader

DINOv3 Loader will fail on the default path — here's the one input you actually set

By xuheyao·Created 9 months ago·Updated 9 months ago· 0
DINOv3 Loader
    • DINOv3 Model
    model_path/home/macoofi/dinov3/dinov3/backbone/dinov3_vitb16_pretrain_lvd1689m-73cec8be.pth
    model_namedinov3_vitb16

    Open this node and the first thing you'll see is a text field pointing at /home/macoofi/dinov3/dinov3/backbone/dinov3_vitb16_pretrain_lvd1689m-73cec8be.pth. That is a path on the author's own machine. It is not your machine. If you run the workflow without changing it, this node fails instantly - the number one thing that trips people up with this whole pack is a single text field.

    DINOv3 Loader is the entry point for comfyui-dinov3-point-prompt. It loads a DINOv3 backbone - Meta/Facebook's self-supervised vision transformer that's been quietly everywhere since late 2025, powering things like TRELLIS 2 and even serving as a VAE encoder in from-scratch training runs - and hands it to the pack's other nodes as a DINOV3_MODEL object. DINOv3's claim to fame is that its patch embeddings are object-aware with zero labels: click a patch, and cosine similarity to every other patch highlights the same stuff elsewhere. That's the whole idea this pack is built on.

    How it works

    Under the hood it's not clever, and that's the part worth knowing. The loader calls torch.hub.load() with source="local" and points it at a folder named dinov3 inside the pack's own directory. That folder is not a model download - it's the entire facebookresearch/dinov3 source repository, cloned so the loader can find hubconf.py and construct the backbone by name. The actual weights come from the .pth file you point at in model_path.

    Two consequences. First, no auto-download: unlike a checkpoint loader that fetches from a URL, this node will not grab anything for you. You supply the weights. Second, the field tooltip says "Path to DINOv3 repository," but the code uses whatever you put there as the checkpoint path (it does weights=model_path). Trust the code, not the tooltip.

    The inputs that matter

    • model_path - absolute path to the DINOv3 checkpoint .pth file. The default is the author's home directory, so you must change it. Point it at the dinov3_vitb16 weights you download from the Hugging Face model card.
    • model_name - the backbone architecture, default dinov3_vitb16. Keep the default unless you deliberately downloaded a bigger backbone; the DINOv3 repo also ships ViT-L/14 and ViT-G/14, but a larger model means more VRAM for marginal gain on point-prompting.

    The single output is DINOv3 Model, and it wires straight into DINOv3 Process. Nothing else in the pack needs it directly.

    How to install

    The README is two lines long and both matter:

    cd ComfyUI/custom_nodes
    git clone https://github.com/xuheyao/comfyui-dinov3-point-prompt
    cd comfyui-dinov3-point-prompt
    git clone https://github.com/facebookresearch/dinov3
    

    Then restart ComfyUI. ComfyUI Manager can install the pack (search "comfyui-dinov3-point-prompt"), but it will not clone the dinov3 repository into the folder for you - you still have to run that second clone by hand. There's no requirements.txt; the pack just needs torch, torchvision, numpy, PIL and cv2, which modern ComfyUI already ships.

    Where people get burned

    • The default path. Change model_path or the loader dies with a file-not-found traceback.
    • The gated checkpoint. The DINOv3 weights live behind a Hugging Face model card you have to accept terms for before the download link works. Some people get stuck for days on approval; checking ModelScope for a mirror is the known workaround.
    • Forgetting the dinov3 clone. The loader errors on torch.hub trying to load a local repo that doesn't exist. If you installed via Manager, this is the most likely failure - the pack itself is there, the dependency source repo isn't.

    It's a young, single-commit pack from December 2025, so polish is thin - but once the path is right, the loader itself is boring, which is what you want from a loader.

    CategoryDINOv3

    Inputs (2)

    NameTypeDefaultDescription
    model_pathSTRING/home/macoofi/dinov3/dinov3/backbone/dinov3_vitb16_pretrain_lvd1689m-73cec8be.pthPath to DINOv3 repository
    model_nameSTRINGdinov3_vitb16Model name

    Outputs (1)

    NameTypeDescription
    DINOv3 ModelDINOV3_MODEL