How to use from the
Use from the
Transformers library
# Use a pipeline as a high-level helper
from transformers import pipeline

pipe = pipeline("image-feature-extraction", model="Octopus1/page-vitsplus", trust_remote_code=True)
# Load model directly
from transformers import AutoModel
model = AutoModel.from_pretrained("Octopus1/page-vitsplus", trust_remote_code=True, dtype="auto")
Quick Links

PaGE ViT-S+ Distill

Small+ distilled student with gated MLP. Part of the PaGE gaze target estimation family.

  • Backbone: DINOv3 ViT-S+ (gated MLP) (derivative of DINOv3, full-parameter trained)
  • Params: ~30M
  • Scene input: 512Γ—512, Head input: 256Γ—256, Heatmap output: 64Γ—64
  • Source checkpoint: vitsplus_distill.pt

Self-contained weights

This checkpoint includes the full DINOv3 backbone weights in its safetensors files. No external DINOv3 weights are downloaded β€” the DINOv3 model structure is provided by transformers==5.6.2 (built-in dinov3_vit), and the backbone weights here are derivative weights from full-parameter training of DINOv3. The model code (modeling_page.py) is loaded automatically from Octopus1/PaGE via auto_map when you pass trust_remote_code=True.

Installation

pip install torch torchvision timm "transformers==5.6.2" safetensors pillow

Tested with transformers 5.6.2.

Usage

from transformers import AutoModel, AutoImageProcessor
from PIL import Image
import torch

repo = "Octopus1/page-vitsplus"
model = AutoModel.from_pretrained(repo, trust_remote_code=True).eval()
processor = AutoImageProcessor.from_pretrained(repo, trust_remote_code=True)

scene = Image.open("scene.jpg").convert("RGB")
head = Image.open("head.jpg").convert("RGB")

inputs = processor(scene, head_crops=[head], bboxes=[[(0.10, 0.10, 0.30, 0.40)]])

with torch.no_grad():
    out = model(inputs)

heatmap = out["heatmap"][0]   # [Np, 64, 64]
inout   = out["inout"][0]     # [Np]

Inputs / Outputs

See the family README for the full spec.

  • Input dict: images (list of [B,3,512,512]), head_images (list of [sum(Np),3,256,256]), bboxes (per-image list of (xmin,ymin,xmax,ymax) in [0,1]).
  • Output dict: heatmap (list of [Np,64,64], sigmoid), inout (list of [Np], sigmoid).

License

  • The PaGE decoder and gaze heads are released under the MIT License (see LICENSE).
  • The DINOv3 backbone is a derivative work of DINOv3 (facebook/dinov3). The backbone was initialized from the public DINOv3 self-supervised weights and then trained in full (all parameters updated) as part of PaGE training β€” i.e. the backbone weights here are derivative weights produced by full-parameter training of DINOv3, not the original DINOv3 weights verbatim.
  • DINOv3 is released by Meta AI under the Meta DINO License (see DINOv3_LICENSE.md). Under its Section 1.b.i, derivative works of DINOv3 (including these backbone weights) are distributed under the DINO License terms, and DINOv3_LICENSE.md must accompany any redistribution.
  • By using or redistributing this model you agree to the DINO License for the DINOv3-derived portions.

See the family README for full license details.

Downloads last month
32
Safetensors
Model size
73.2M params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Spaces using Octopus1/page-vitsplus 2

Collection including Octopus1/page-vitsplus