from sentence_transformers import SentenceTransformer import torch.nn.functional as F import torch class Load_EmbeddingModels: def __init__(self, model_name ='jinaai/jina-clip-v2'): self.device = "cuda" if torch.cuda.is_available() else "cpu" self.img_model_ID = model_name self.img_model = self.get_cp_img_model_info(self.img_model_ID) def get_cp_img_model_info(self, model_name): print('Loading SentenceTransformer model') model =SentenceTransformer(model_name, trust_remote_code=True) model = model.to(self.device) return model def get_single_image_embedding_cp_im(self, my_image): embedding = self.img_model.encode( my_image, normalize_embeddings=True ) values = embedding.tolist() return values class Get_EmbeddingModels: def __init__(self, model_name='jinaai/jina-clip-v2'): self.embed_model = Load_EmbeddingModels(model_name) def get_dense_embd(self, img): embd = self.embed_model.get_single_image_embedding_cp_im(img) return embd