clip-embedding / app.py
nitinsurya's picture
Validating if cache file exist or not and accordingly runs caching.
6f32cf9
raw
history blame
No virus
929 Bytes
import gradio as gr
import numpy as np
from PIL import Image
from pathlib import Path
from sentence_transformers import SentenceTransformer
cache_path = Path('/app/cache')
if cache_path.exists():
print('Cache folder exists, loading from cache')
model = SentenceTransformer('clip-ViT-B-32', cache_folder=cache_path)
else:
print('Cache folder does not exist, loading from web')
model = SentenceTransformer('clip-ViT-B-32')
def image_to_embedding(img: np.ndarray = None, txt: str = None) -> np.ndarray:
if img is None and not txt:
return []
if img is not None:
embedding = model.encode(sentences=[Image.fromarray(img)], batch_size=128)
else:
embedding = model.encode(sentences=[txt], batch_size=128)
return embedding
demo = gr.Interface(fn=image_to_embedding, inputs=["image", "textbox"], outputs="textbox", cache_examples=True)
demo.launch(server_name="0.0.0.0")