Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import AutoImageProcessor, AutoModel | |
import torch | |
from PIL import Image | |
import numpy as np | |
# Cargar el modelo solo una vez | |
processor = AutoImageProcessor.from_pretrained("facebook/dinov2-base") | |
model = AutoModel.from_pretrained("facebook/dinov2-base") | |
model.eval() | |
def get_embedding(image_np): | |
image = Image.fromarray(image_np).convert("RGB") | |
inputs = processor(images=image, return_tensors="pt") | |
with torch.no_grad(): | |
embeddings = model(**inputs).last_hidden_state[:, 0] # CLS token | |
return embeddings.squeeze().tolist() | |
iface = gr.Interface( | |
fn=get_embedding, | |
inputs=gr.Image(type="numpy"), # CAMBIO CLAVE AQUÍ | |
outputs="json", | |
description="Microservicio para extraer embeddings de imágenes usando DINOv2." | |
) | |
iface.queue() | |
iface.launch() | |