robgonsalves commited on
Commit
402ed5c
·
verified ·
1 Parent(s): 60ffe5d

inititial checkin

Browse files
Files changed (2) hide show
  1. app.py +32 -0
  2. requirements.txt +4 -0
app.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from PIL import Image
3
+ import torch
4
+ from transformers import CLIPProcessor, CLIPModel
5
+
6
+ # Load model and processor
7
+ model = CLIPModel.from_pretrained("laion/CLIP-ViT-H-14-laion2B-s32B-b79K")
8
+ processor = CLIPProcessor.from_pretrained("laion/CLIP-ViT-H-14-laion2B-s32B-b79K")
9
+
10
+ def calculate_similarity(image, text_prompt):
11
+ # Process inputs
12
+ inputs = processor(text=text_prompt, images=image, return_tensors="pt", padding=True)
13
+
14
+ # Forward pass
15
+ outputs = model(**inputs)
16
+
17
+ # Normalize and calculate cosine similarity
18
+ image_features = outputs.image_embeds / outputs.image_embeds.norm(dim=-1, keepdim=True)
19
+ text_features = outputs.text_embeds / outputs.text_embeds.norm(dim=-1, keepdim=True)
20
+ cosine_similarity = torch.nn.functional.cosine_similarity(image_features, text_features)
21
+
22
+ return {"Cosine Similarity": cosine_similarity.item()}
23
+
24
+ # Set up Gradio interface
25
+ iface = gr.Interface(fn=calculate_similarity,
26
+ inputs=[gr.inputs.Image(type="pil"), gr.inputs.Textbox(label="Text Prompt")],
27
+ outputs=[gr.outputs.Label(label="Cosine Similarity")],
28
+ title="OpenClip Cosine Similarity Calculator",
29
+ description="Upload an image and provide a text prompt to calculate the cosine similarity.")
30
+
31
+ # Launch the interface locally for testing
32
+ iface.launch()
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ gradio
2
+ torch
3
+ transformers
4
+ pillow