Views
No views yet
Note: This model translates image embeddings only. Both source (CLIP) and target (SigLIP) are vision models trained on image-text pairs.
| Metric | Value |
|---|---|
| Cosine Similarity | 90.9% |
| Rank@1 (10K pool) | 94.3% |
| Rank@1 (100K pool) | 84.4% |
| Cross-domain (COCO photos) | 90.1% |
| Cross-domain (WikiArt paintings) | 85.7% |
pip install torch huggingface_hub1from huggingface_hub import hf_hub_download
2import torch
3import sys
4import os
5
6# Download the module
7module_path = hf_hub_download(
8 "vulturelabs/vector-rosetta-clip-vit-base-patch32-to-siglip-vit-base-patch16-224",
9 "vector_rosetta.py",
10 token=os.environ.get("HF_TOKEN")
11)
12sys.path.insert(0, str(module_path.rsplit('/', 1)[0]))
13
14from vector_rosetta import VectorRosetta
15
16# Load model
17translator = VectorRosetta.from_pretrained(
18 "vulturelabs/vector-rosetta-clip-vit-base-patch32-to-siglip-vit-base-patch16-224",
19 token=os.environ.get("HF_TOKEN")
20)
21
22# Translate CLIP image embeddings to SigLIP
23import numpy as np
24clip_image_embeddings = np.random.randn(100, 512).astype(np.float32) # Your CLIP image embeddings
25siglip_image_embeddings = translator.translate(clip_image_embeddings)
26print(siglip_image_embeddings.shape) # (100, 768)
27
28# With confidence scores (lower = better translation)
29siglip_embeddings, confidence = translator.translate(clip_image_embeddings, return_confidence=True)1from transformers import CLIPProcessor, CLIPModel
2from PIL import Image
3import requests
4
5# Get a CLIP image embedding
6clip_model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32")
7clip_processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32")
8
9url = "http://images.cocodataset.org/val2017/000000039769.jpg"
10image = Image.open(requests.get(url, stream=True).raw)
11
12inputs = clip_processor(images=image, return_tensors="pt")
13clip_emb = clip_model.get_image_features(**inputs).detach().numpy()
14
15# Translate to SigLIP image embedding space
16siglip_emb = translator.translate(clip_emb)
17
18# Now use siglip_emb with any SigLIP-based image retrieval system!1translated, confidence = translator.translate(image_embeddings, return_confidence=True)
2good_translations = translated[confidence < 0.3]1@misc{vector-rosetta-2025,
2 title={Vector Rosetta: Cross-Model Image Embedding Translation},
3 year={2025}
4}