QLIP-I: Image Embedding Model

QLIP-I is a vision transformer-based model that generates normalized 512-dimensional embeddings for images. The model uses a patch-based approach to encode visual information into a compact representation suitable for similarity search, retrieval, and downstream tasks.

Install dependencies

pip install torch torchvision pillow numpy

Usage

Single Image Encoding

from PIL import Image
import QLIPI

# Load and encode an image
image = Image.open("path/to/image.jpg")
embedding = QLIPI.encode(image)

# The embedding is a 512-dimensional normalized tensor
print(embedding.shape)  # torch.Size([512])

Batch Encoding

import QLIPI
from PIL import Image

# Encode multiple images at once
images = [
    "image1.jpg",
    "image2.jpg",
    Image.open("image3.jpg")
]
embeddings = QLIPI.encode_batch(images)

# Returns a batch of embeddings
print(embeddings.shape)  # torch.Size([3, 512])

Computing Similarity

import torch
import QLIPI
from PIL import Image

# Encode two images
img1 = Image.open("cat.jpg")
img2 = Image.open("dog.jpg")

emb1 = QLIPI.encode(img1)
emb2 = QLIPI.encode(img2)

# Compute cosine similarity (embeddings are already normalized)
similarity = torch.dot(emb1, emb2)
print(f"Similarity: {similarity.item():.4f}")

Save and Load Embeddings

import torch
import QLIPI
from PIL import Image

# Encode and save
image = Image.open("image.jpg")
embedding = QLIPI.encode(image)
torch.save(embedding, "embedding.pt")

# Load embedding
loaded_embedding = torch.load("embedding.pt")

Model Information

import QLIPI

# Get device being used
print(QLIPI.device())  # cuda or cpu

# Get model path
print(QLIPI.model_path())  # Path to qlip-img.pt

# Get embedding dimensions
print(QLIPI.embedding_dim())  # 512

# Get number of parameters
print(QLIPI.model_parameters())  # Total trainable parameters

Input Specifications

  • Format: RGB images (automatically converted from other formats)
  • Preprocessing: Images are resized to 224×224 using bicubic interpolation with center cropping
  • Normalization: ImageNet statistics
    • Mean: [0.485, 0.456, 0.406]
    • Std: [0.229, 0.224, 0.225]

The model automatically uses CUDA if available and falls back to CPU otherwise.

Use Cases

  • Image Similarity Search: Find similar images using cosine similarity
  • Image Retrieval: Build reverse image search systems
  • Clustering: Group similar images together
  • Classification: Use embeddings as features for downstream classifiers
  • Content-Based Recommendation: Recommend visually similar content
  • Duplicate Detection: Identify near-duplicate images

Limitations

  • Images are resized to 224×224, which may lose detail in high-resolution images
  • Model is trained for general visual understanding; domain-specific fine-tuning may improve performance on specialized datasets
  • Embeddings are fixed at 512 dimensions

License

MIT Licenses

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support