Nodes/comfyui-lite-tracker/LiteTracker: Load Model
ComfyUI Node

LiteTracker: Load Model

This 'Load Model' Node Quietly Downloads Your Tracker on First Run

By fuselayer·Created 10 months ago·Updated 10 months ago· 0
LiteTracker: Load Model
    • tracker
    weights_sourcehuggingface_scaled_online
    deviceauto
    urlhttps://huggingface.co/facebook/cotracker3/resolve/main/scaled_online.pth
    local_path
    cache_dir/tmp/ComfyUI/models/lite_tracker
    window_len16
    iters1
    linear_layer_for_vis_conftrue

    LiteTracker: Load Model is the least glamorous node in comfyui-lite-tracker and the one you'll misconfigure the most. It doesn't track anything. It builds the tracker object that LiteTracker: Track runs, and most of what it does happens once, on your first execution: it grabs the ~100 MB checkpoint and puts it on your GPU. Everything downstream - the actual tracking, the rainbow visualizations - is only as good as what this node loads.

    The mechanism, briefly. The pack is a ComfyUI wrapper around LiteTracker (ImFusionGmbH/lite-tracker), a research point tracker from a MICCAI 2025 paper on low-latency tissue tracking. Point tracking means: you give the tracker a set of query points on one frame, and it tells you where those points are on every later frame. This node is the loading step - the same role a Load Checkpoint plays in an image workflow.

    The default weights_source is huggingface_scaled_online, and this is where beginners get surprised. Despite the "Lite" branding, the file it pulls is facebook/cotracker3's scaled_online.pth - the CoTracker3 checkpoint. That's not a bug. LiteTracker shares that architecture family (the README thanks the CoTracker3 authors), and the node hard-codes the architecture knobs - correlation levels, stride, correlation radius - for exactly this checkpoint family. The file is cached in ComfyUI/models/lite_tracker, so only your first run pays the download. It's also committed inside the repo under weights/, which tells you how small it is: about 100 MB, nothing like a diffusion model.

    Which inputs matter? For a beginner, exactly two, and they're both required:

    • weights_source - huggingface_scaled_online is the sensible default. url loads from a custom checkpoint URL, local_path loads a .pth from disk. Unless you're experimenting with weights, leave it alone.
    • device - auto picks CUDA, then MPS on Apple Silicon, then CPU. It also picks bf16 on CUDA cards that support it, fp32 otherwise.

    The optional inputs: window_len (4–64, default 16) is the tracker's temporal window - how many past frames the model keeps in mind when predicting the current one. Bigger is smoother, and costlier. iters (1–8, default 1) is per-frame refinement iterations; 1 is the lightweight default, bump it only if tracks look sloppy. linear_layer_for_vis_conf looks scary, but the node inspects the checkpoint's state dict and overrides it to match the weights anyway - you never need to touch it. cache_dir defaults to ComfyUI/models/lite_tracker under your ComfyUI install.

    The single output is tracker (type LITETRACKER), which wires straight into the tracker input of LiteTracker: Track. That's the whole job.

    Install (shared by all three nodes in the pack): via ComfyUI Manager, search "comfyui-lite-tracker" (or "LiteTracker") and install, or the manual way:

    cd ComfyUI/custom_nodes
    git clone https://github.com/fuselayer/comfyui-lite-tracker.git
    pip install -r requirements.txt
    

    Then restart ComfyUI. The requirements are light - opencv-python, requests, torchvision - so there's no torch compile marathon like some packs. One habit worth keeping: installing a custom node means running its code with your user account, so know what you're installing. This one is a small, readable wrapper.

    Where people get burned: the first run appears to hang - that's the 100 MB download and it's silent. Let it finish; after that it's instant. If you set weights_source to local_path with an empty or wrong path, you get a FileNotFoundError before anything runs. And don't point url at an arbitrary checkpoint: this loader is locked to a CoTracker3-style state dict, so a random .pth either fails strict loading or tracks badly without telling you why. Also worth knowing: the model runs at a fixed internal resolution of 512×384, and the pack resizes frames (and scales query points) to match, so don't stress about feeding it exact-sized video.

    CategoryLiteTracker

    Inputs (8)

    NameTypeDefaultDescription
    weights_sourceCOMBOhuggingface_scaled_online3 options: huggingface_scaled_online, url, local_path
    deviceCOMBOauto4 options: auto, cuda, mps, cpu
    urloptSTRINGhttps://huggingface.co/facebook/cotracker3/resolve/main/scaled_online.pth
    local_pathoptSTRING
    cache_diroptSTRING/tmp/ComfyUI/models/lite_tracker
    window_lenoptINT164–64
    itersoptINT11–8
    linear_layer_for_vis_confoptBOOLEANtrue

    Outputs (1)

    NameTypeDescription
    trackerLITETRACKER