Spaces:
Running
Running
import gradio as gr | |
import torch | |
from transformers import AutoImageProcessor, ConvNextV2ForImageClassification | |
from transformers import AutoModelForImageClassification | |
from torch import nn | |
import dbimutils as utils | |
DEVICE = 'cuda' if torch.cuda.is_available() else 'cpu' | |
image_processor = AutoImageProcessor.from_pretrained("Muinez/artwork-scorer") | |
model = AutoModelForImageClassification.from_pretrained("Muinez/artwork-scorer", problem_type="multi_label_classification").to(DEVICE) | |
def predict(img): | |
file = utils.preprocess_image(img) | |
encoded = image_processor(file, return_tensors="pt").to(DEVICE) | |
with torch.no_grad(): | |
logits = model(**encoded).logits.cpu() | |
outputs = nn.functional.sigmoid(logits) | |
return outputs[0][0].item(), outputs[0][1].item(), outputs[0][2].item() | |
gr.Interface( | |
title="Artwork scorer", | |
description="Predicts score (0-1) for artwork.\nCould be wrong!!!\nDoes not work very well with nsfw i.e. it was not trained on it", | |
fn=predict, | |
allow_flagging="never", | |
inputs=gr.Image(type="pil"), | |
outputs=[gr.Number(label="Score"), gr.Number(label="View count ratio (probably useless)"), gr.Number(label="Upload date 0 - 2016, 1 - 2023")] | |
).launch() |