Spaces:
Sleeping
Sleeping
File size: 1,869 Bytes
0ceff0a 991fbeb 0ceff0a 991fbeb 0ceff0a 75f06df 991fbeb 93c87bc 991fbeb 074b0e2 991fbeb 75f06df f5dd171 991fbeb 93ac46b f5dd171 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
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 and feedback
def main():
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", interactive=False)
confidence_output = gr.Textbox(label="Confidence", interactive=False)
feedback_output = gr.Textbox(label="Feedback Status", interactive=False)
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, outputs=feedback_output)
# Launch the Gradio interface
demo.launch(share=True)
if __name__ == "__main__":
main() |