Spaces:
Sleeping
Sleeping
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(): | |
global last_prediction | |
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 | |
with gr.Blocks() as demo: | |
gr.Markdown("### Vision Transformer Model") | |
gr.Markdown("Upload an image to classify it using the Vision Transformer model.") | |
image_input = gr.Image(type="pil", label="Upload Image") | |
prediction_output = gr.Textbox(label="Prediction") | |
confidence_output = gr.Textbox(label="Confidence") | |
submit_btn = gr.Button("Submit") | |
feedback_btn = gr.Button("The model was wrong") | |
submit_btn.click(predict, inputs=image_input, outputs=[prediction_output, confidence_output]) | |
feedback_btn.click(report_feedback) | |
# Launch the Gradio interface | |
if __name__ == "__main__": | |
demo.launch(share=True) |