Update app.py
Browse files
app.py
CHANGED
@@ -9,16 +9,15 @@ model = AutoModel.from_pretrained('jinaai/jina-clip-v1', trust_remote_code=True)
|
|
9 |
def compute_similarity(input1_type, input1_text, input1_image, input2_type, input2_text, input2_image):
|
10 |
"""Computes similarity for Text-Text, Image-Image, or Text-Image comparisons."""
|
11 |
|
12 |
-
# Ensure images are valid (Gradio
|
13 |
input1_image = None if isinstance(input1_image, bool) else input1_image
|
14 |
input2_image = None if isinstance(input2_image, bool) else input2_image
|
15 |
|
16 |
-
#
|
17 |
if input1_type == "Text" and not input1_text.strip():
|
18 |
return "Error: Input 1 (Text) is empty!"
|
19 |
if input1_type == "Image" and input1_image is None:
|
20 |
return "Error: Please upload a valid image for Input 1!"
|
21 |
-
|
22 |
if input2_type == "Text" and not input2_text.strip():
|
23 |
return "Error: Input 2 (Text) is empty!"
|
24 |
if input2_type == "Image" and input2_image is None:
|
@@ -30,18 +29,15 @@ def compute_similarity(input1_type, input1_text, input1_image, input2_type, inpu
|
|
30 |
emb1 = model.encode_text([input1_text])
|
31 |
emb2 = model.encode_text([input2_text])
|
32 |
elif input1_type == "Image" and input2_type == "Image":
|
33 |
-
emb1 = model.encode_image([Image.fromarray(input1_image)])
|
34 |
-
emb2 = model.encode_image([Image.fromarray(input2_image)])
|
35 |
else:
|
36 |
if input1_type == "Image":
|
37 |
-
emb1 = model.encode_image([Image.fromarray(input1_image)])
|
38 |
emb2 = model.encode_text([input2_text])
|
39 |
else:
|
40 |
emb1 = model.encode_text([input1_text])
|
41 |
-
emb2 = model.encode_image([Image.fromarray(input2_image)])
|
42 |
-
|
43 |
-
if emb1 is None or emb2 is None:
|
44 |
-
return "Error: Failed to process one or both inputs."
|
45 |
|
46 |
similarity_score = (emb1 @ emb2.T).item()
|
47 |
return similarity_score
|
|
|
9 |
def compute_similarity(input1_type, input1_text, input1_image, input2_type, input2_text, input2_image):
|
10 |
"""Computes similarity for Text-Text, Image-Image, or Text-Image comparisons."""
|
11 |
|
12 |
+
# Ensure images are valid (Gradio sometimes sends `False` instead of `None`)
|
13 |
input1_image = None if isinstance(input1_image, bool) else input1_image
|
14 |
input2_image = None if isinstance(input2_image, bool) else input2_image
|
15 |
|
16 |
+
# Validate inputs
|
17 |
if input1_type == "Text" and not input1_text.strip():
|
18 |
return "Error: Input 1 (Text) is empty!"
|
19 |
if input1_type == "Image" and input1_image is None:
|
20 |
return "Error: Please upload a valid image for Input 1!"
|
|
|
21 |
if input2_type == "Text" and not input2_text.strip():
|
22 |
return "Error: Input 2 (Text) is empty!"
|
23 |
if input2_type == "Image" and input2_image is None:
|
|
|
29 |
emb1 = model.encode_text([input1_text])
|
30 |
emb2 = model.encode_text([input2_text])
|
31 |
elif input1_type == "Image" and input2_type == "Image":
|
32 |
+
emb1 = model.encode_image([Image.fromarray(input1_image.astype("uint8"))])
|
33 |
+
emb2 = model.encode_image([Image.fromarray(input2_image.astype("uint8"))])
|
34 |
else:
|
35 |
if input1_type == "Image":
|
36 |
+
emb1 = model.encode_image([Image.fromarray(input1_image.astype("uint8"))])
|
37 |
emb2 = model.encode_text([input2_text])
|
38 |
else:
|
39 |
emb1 = model.encode_text([input1_text])
|
40 |
+
emb2 = model.encode_image([Image.fromarray(input2_image.astype("uint8"))])
|
|
|
|
|
|
|
41 |
|
42 |
similarity_score = (emb1 @ emb2.T).item()
|
43 |
return similarity_score
|