wilwork commited on
Commit
c4ab507
·
verified ·
1 Parent(s): a4d1f68

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -10
app.py CHANGED
@@ -1,12 +1,13 @@
1
  import gradio as gr
2
  from PIL import Image
3
- from transformers import CLIPProcessor, CLIPModel
4
  import torch
5
 
6
  # Load Jina CLIP model
7
  model_name = "jinaai/jina-clip-v1"
8
  model = CLIPModel.from_pretrained(model_name)
9
- processor = CLIPProcessor.from_pretrained(model_name)
 
10
 
11
  def compute_similarity(input1, input2, type1, type2):
12
  inputs = []
@@ -14,28 +15,28 @@ def compute_similarity(input1, input2, type1, type2):
14
  # Process input1
15
  if type1 == "Image":
16
  image1 = Image.open(input1).convert("RGB")
17
- inputs.append(processor(images=image1, return_tensors="pt"))
18
  else:
19
- inputs.append(processor(text=[input1], return_tensors="pt"))
20
 
21
  # Process input2
22
  if type2 == "Image":
23
  image2 = Image.open(input2).convert("RGB")
24
- inputs.append(processor(images=image2, return_tensors="pt"))
25
  else:
26
- inputs.append(processor(text=[input2], return_tensors="pt"))
27
 
28
  # Compute embeddings
29
  with torch.no_grad():
30
  if type1 == "Image":
31
- embedding1 = model.get_image_features(**inputs[0])
32
  else:
33
- embedding1 = model.get_text_features(**inputs[0])
34
 
35
  if type2 == "Image":
36
- embedding2 = model.get_image_features(**inputs[1])
37
  else:
38
- embedding2 = model.get_text_features(**inputs[1])
39
 
40
  # Compute similarity
41
  similarity = torch.nn.functional.cosine_similarity(embedding1, embedding2)
 
1
  import gradio as gr
2
  from PIL import Image
3
+ from transformers import CLIPModel, AutoTokenizer, AutoProcessor
4
  import torch
5
 
6
  # Load Jina CLIP model
7
  model_name = "jinaai/jina-clip-v1"
8
  model = CLIPModel.from_pretrained(model_name)
9
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
10
+ processor = AutoProcessor.from_pretrained(model_name)
11
 
12
  def compute_similarity(input1, input2, type1, type2):
13
  inputs = []
 
15
  # Process input1
16
  if type1 == "Image":
17
  image1 = Image.open(input1).convert("RGB")
18
+ inputs.append(processor(images=image1, return_tensors="pt")["pixel_values"])
19
  else:
20
+ inputs.append(tokenizer(input1, return_tensors="pt")["input_ids"])
21
 
22
  # Process input2
23
  if type2 == "Image":
24
  image2 = Image.open(input2).convert("RGB")
25
+ inputs.append(processor(images=image2, return_tensors="pt")["pixel_values"])
26
  else:
27
+ inputs.append(tokenizer(input2, return_tensors="pt")["input_ids"])
28
 
29
  # Compute embeddings
30
  with torch.no_grad():
31
  if type1 == "Image":
32
+ embedding1 = model.get_image_features(pixel_values=inputs[0])
33
  else:
34
+ embedding1 = model.get_text_features(input_ids=inputs[0])
35
 
36
  if type2 == "Image":
37
+ embedding2 = model.get_image_features(pixel_values=inputs[1])
38
  else:
39
+ embedding2 = model.get_text_features(input_ids=inputs[1])
40
 
41
  # Compute similarity
42
  similarity = torch.nn.functional.cosine_similarity(embedding1, embedding2)