Spaces:
Runtime error
Runtime error
| import os | |
| import clip | |
| import torch | |
| import logging | |
| import json | |
| import pandas as pd | |
| from PIL import Image | |
| import gradio as gr | |
| from autogluon.tabular import TabularPredictor | |
| predictor = TabularPredictor.load("ag-20240615_190835") | |
| # set logging level | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", | |
| ) | |
| logger = logging.getLogger("AQ") | |
| CLIP_MODEL_NAME = "ViT-B/32" | |
| clip_model, preprocess = clip.load(CLIP_MODEL_NAME, device="cpu") | |
| def predict_fn(input_img): | |
| input_img = Image.fromarray(input_img.astype("uint8"), "RGB") | |
| image = preprocess(input_img).unsqueeze(0) | |
| with torch.no_grad(): | |
| image_features = clip_model.encode_image(image).numpy() | |
| input_df = pd.DataFrame(image_features[0].reshape(1, -1)) | |
| quality_score = float(predictor.predict(input_df).iloc[0]) | |
| logger.info(f"decision: {quality_score}") | |
| decision_json = json.dumps({"quality_score": quality_score}).encode("utf-8") | |
| logger.info(f"decision_json: {decision_json}") | |
| return decision_json | |
| iface = gr.Interface( | |
| fn=predict_fn, | |
| inputs="image", | |
| outputs="text", | |
| description=""" | |
| The model returns quality score for an avatar based on visual apeal and humanoid appearance. | |
| """, | |
| allow_flagging="manual", | |
| ) | |
| iface.launch() | |