AkinyemiAra commited on
Commit
89f930a
·
verified ·
1 Parent(s): 817f852

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -8
app.py CHANGED
@@ -11,18 +11,35 @@ from typing import Dict, List, Any, Optional
11
  from transformers.pipelines import pipeline
12
 
13
  # Initialize the model
14
- model = pipeline("image-feature-extraction", model="nomic-ai/nomic-embed-vision-v1.5", trust_remote_code=True)
 
 
 
 
 
 
15
 
16
  # Function to generate embeddings from an image
17
  def generate_embedding(image):
18
  if image is None:
19
- return None, "No image provided"
 
 
 
20
 
21
  # Convert to PIL Image if needed
22
  if not isinstance(image, Image.Image):
23
- image = Image.fromarray(image)
 
 
 
 
24
 
25
  try:
 
 
 
 
26
  # Generate embedding using the transformers pipeline
27
  result = model(image)
28
 
@@ -47,14 +64,14 @@ def generate_embedding(image):
47
  embedding_list = list(result)
48
  else:
49
  print("Result is None")
50
- return None, "Failed to generate embedding"
51
  except:
52
  print(f"Couldn't convert result of type {type(result)} to list")
53
- return None, "Failed to process embedding"
54
 
55
  # Ensure we have a valid embedding list
56
  if embedding_list is None:
57
- return None, "Failed to generate embedding"
58
 
59
  # Calculate embedding dimension
60
  embedding_dim = len(embedding_list)
@@ -65,7 +82,7 @@ def generate_embedding(image):
65
  }, f"Dimension: {embedding_dim}"
66
  except Exception as e:
67
  print(f"Error generating embedding: {str(e)}")
68
- return None, f"Error: {str(e)}"
69
 
70
  # Function to generate embeddings from an image URL
71
  def embed_image_from_url(image_url):
@@ -101,7 +118,10 @@ app = gr.Interface(
101
  ],
102
  title="Nomic Vision Embedding Model (nomic-ai/nomic-embed-vision-v1.5)",
103
  description="Upload an image to generate embeddings using the Nomic Vision model.",
104
- examples=[["examples/example1.jpg"], ["examples/example2.jpg"]],
 
 
 
105
  allow_flagging="never"
106
  )
107
 
 
11
  from transformers.pipelines import pipeline
12
 
13
  # Initialize the model
14
+ try:
15
+ model = pipeline("image-feature-extraction", model="nomic-ai/nomic-embed-vision-v1.5", trust_remote_code=True)
16
+ model_loaded = True
17
+ except Exception as e:
18
+ print(f"Error loading model: {str(e)}")
19
+ model = None
20
+ model_loaded = False
21
 
22
  # Function to generate embeddings from an image
23
  def generate_embedding(image):
24
  if image is None:
25
+ return {"error": "No image provided"}, "No image provided"
26
+
27
+ if not model_loaded:
28
+ return {"error": "Model not loaded properly"}, "Error: Model not loaded properly"
29
 
30
  # Convert to PIL Image if needed
31
  if not isinstance(image, Image.Image):
32
+ try:
33
+ image = Image.fromarray(image)
34
+ except Exception as e:
35
+ print(f"Error converting image: {str(e)}")
36
+ return {"error": f"Invalid image format: {str(e)}"}, f"Error: Invalid image format"
37
 
38
  try:
39
+ # Check if model is loaded before calling it
40
+ if model is None:
41
+ return {"error": "Model not loaded properly"}, "Error: Model not loaded properly"
42
+
43
  # Generate embedding using the transformers pipeline
44
  result = model(image)
45
 
 
64
  embedding_list = list(result)
65
  else:
66
  print("Result is None")
67
+ return {"error": "Failed to generate embedding"}, "Failed to generate embedding"
68
  except:
69
  print(f"Couldn't convert result of type {type(result)} to list")
70
+ return {"error": "Failed to process embedding"}, "Failed to process embedding"
71
 
72
  # Ensure we have a valid embedding list
73
  if embedding_list is None:
74
+ return {"error": "Failed to generate embedding"}, "Failed to generate embedding"
75
 
76
  # Calculate embedding dimension
77
  embedding_dim = len(embedding_list)
 
82
  }, f"Dimension: {embedding_dim}"
83
  except Exception as e:
84
  print(f"Error generating embedding: {str(e)}")
85
+ return {"error": f"Error generating embedding: {str(e)}"}, f"Error: {str(e)}"
86
 
87
  # Function to generate embeddings from an image URL
88
  def embed_image_from_url(image_url):
 
118
  ],
119
  title="Nomic Vision Embedding Model (nomic-ai/nomic-embed-vision-v1.5)",
120
  description="Upload an image to generate embeddings using the Nomic Vision model.",
121
+ examples=[
122
+ ["nomic/examples/example1.jpg"],
123
+ ["nomic/examples/example2.jpg"]
124
+ ],
125
  allow_flagging="never"
126
  )
127