Spaces:
Runtime error
Runtime error
| import torch | |
| from transformers import CLIPProcessor, CLIPModel | |
| from config.config import Config | |
| from PIL import Image | |
| class ImageEmbedder: | |
| _instance = None | |
| def __new__(cls, model_name=Config.CLIP_MODEL_NAME): | |
| if not cls._instance: | |
| cls._instance = super().__new__(cls) | |
| cls._instance.model = CLIPModel.from_pretrained(model_name) | |
| cls._instance.processor = CLIPProcessor.from_pretrained(model_name) | |
| return cls._instance | |
| def generate_embedding(self, image_path: str) -> torch.Tensor: | |
| """Generate embedding for an image using CLIP.""" | |
| image = Image.open(image_path).convert('RGB') | |
| inputs = self.processor(images=image, return_tensors="pt") | |
| with torch.no_grad(): | |
| image_embeddings = self.model.get_image_features(**inputs) | |
| return image_embeddings.squeeze().numpy() |