import gradio as gr from transformers import pipeline from huggingface_hub import hf_hub_download import json # Define model repository details model_repo = "KhadijaAsehnoune12/LeafDiseaseDetector" config_filename = "config.json" # Download the config.json file from the model repository config_path = hf_hub_download(repo_id=model_repo, filename=config_filename) # Load the config.json file with open(config_path, "r", encoding="utf-8") as f: config = json.load(f) # Initialize the pipeline pipe = pipeline(task="image-classification", model=model_repo) # Define a custom prediction function import numpy as np # Define a custom prediction function def predict(image): # Convert the image to numpy array if it's not already in that format if not isinstance(image, np.ndarray): raise ValueError("Input image must be a numpy array.") # Get the predictions from the pipeline predictions = pipe(image) # Get the predicted label index predicted_index = predictions[0]['label'] # Map the index to the corresponding disease name using id2label label_name = config["id2label"][str(predicted_index)] # Optionally, you can add the confidence score as well confidence_score = predictions[0]['score'] return f"{label_name} ({confidence_score:.2f})" # Create Gradio interface iface = gr.Interface(fn=predict, inputs=gr.Image(type="numpy"), outputs=gr.Textbox(), title="Orange Disease Image Classification", description="Detect diseases in orange leaves and fruits.", examples=['MoucheB.jpg', 'verdissement.jpg']) # Launch the app iface.launch()