VIT_Demo / app.py
benjaminStreltzin's picture
Update app.py
991fbeb verified
raw
history blame
1.48 kB
import gradio as gr
from PIL import Image
from vit_model_test import Custom_VIT_Model # Ensure you import the correct class
# Initialize the model
model = Custom_VIT_Model()
# Variable to store the last prediction result
last_prediction = None
def predict(image: Image.Image):
global last_prediction
label, confidence = model.predict(image)
result = "AI image" if label == 1 else "Real image"
last_prediction = (image, label) # Store the image and prediction label
return result, f"Confidence: {confidence:.2f}%"
def report_feedback():
if last_prediction is not None:
image, predicted_label = last_prediction
correct_label = 1 if predicted_label == 0 else 0 # Invert the label
model.add_data(image, correct_label) # Add incorrect prediction to model
return "Feedback recorded. Thank you!"
return "No prediction available to report."
# Define the Gradio interface for prediction
demo = gr.Interface(
fn=predict,
inputs=gr.Image(type="pil"),
outputs=[gr.Textbox(label="Prediction"), gr.Textbox(label="Confidence")],
title="Vision Transformer Model",
description="Upload an image to classify it using the Vision Transformer model.",
theme=gr.themes.Soft()
)
# Define the feedback button
feedback_button = gr.Button("The model was wrong")
feedback_button.click(report_feedback)
# Launch the Gradio interface
if __name__ == "__main__":
demo.launch(share=True)
feedback_button.launch()