ComfyUI Node

DINOv3 Similarity

DINOv3 Similarity wants a feature type this pack never outputs — here's the honest read

By xuheyao·Created 9 months ago·Updated 9 months ago· 0
DINOv3 Similarity
  • features
  • points
  • Similarity Map

I'll be straight with you: as it ships, this is the node you skip. DINOv3 Similarity's whole job - take features and a point, produce a similarity map - was already done better inside DINOv3 Process, which bakes the same computation in and returns it as an image. And there's a structural problem that makes this node impossible to wire up from within its own pack. Let me explain, because understanding why it's broken tells you something about the whole project.

The node takes two inputs: features (type DINOV3_FEATURES) and points (type SAM3_POINTS_PROMPT, from the point collector or SAM3 nodes). It picks the first point, finds which patch it lands in, computes cosine similarity between that patch's feature vector and every other patch, and returns a single Similarity Map image - the same viridis heatmap with a red circle on the clicked patch you get out of DINOv3 Process.

Why it can't connect

Here's the catch. The input asks for DINOV3_FEATURES, but no node in this pack emits that type. DINOv3 Process - the only node that touches features - returns four IMAGE outputs: positive feature images, negative feature images, a placeholder "processed image," and a magnitude visualization. The feature dictionary it computes internally (with features, grid_size, actual_patch_size) never leaves the node. So there's no wire in the graph that can reach DINOv3 Similarity's features socket unless you have a different pack installed that produces DINOV3_FEATURES - and none of the usual SAM3 packs do.

This has the look of refactor leftovers. The pack's code contains the same similarity-generation routine copied into three places - Process, the point collector, and this node - and at some point Process was changed to emit images directly while this node kept its old DINOV3_FEATURES contract. If you're new to the pack, don't spend an hour hunting for the missing connection. There isn't one.

When you'd still use it

Two scenarios, both niche. If you happen to have a workflow with a custom node that does produce DINOV3_FEATURES (maybe from a fork or a future update to this pack), it slots in here. And note the behavior difference if it ever does connect: DINOv3 Similarity uses only the first point in the list - the process node generates a map per point, this one takes your first click and ignores the rest. For single-point queries that's fine, but it means the two nodes aren't even equivalent in what they visualize.

Install

The pack installs the usual way, and the dinov3 source clone is required because the loader depends on it:

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

Restart ComfyUI, download the DINOv3 checkpoint (gated on Hugging Face - accept terms on the model card first, or grab a ModelScope mirror), and set it in DINOv3 Loader. This is a single-commit pack from December 2025, and this node is the clearest sign of its youth. My advice: install it for the loader, process, and point collector, and leave DINOv3 Similarity on the shelf until the pack ships something that can actually feed it.

CategoryDINOv3

Inputs (2)

NameTypeDefaultDescription
featuresDINOV3_FEATURESDINOv3 features from DINOv3Process node
pointsSAM3_POINTS_PROMPTPoints from DINOv3PointCollector or SAM3 nodes

Outputs (1)

NameTypeDescription
Similarity MapIMAGE