import streamlit as st import torch from transformers import AutoModelForImageClassification, AutoImageProcessor from PIL import Image # Load Model repo_name = "Jayanth2002/dinov2-base-finetuned-SkinDisease" image_processor = AutoImageProcessor.from_pretrained(repo_name) model = AutoModelForImageClassification.from_pretrained(repo_name) model.eval() # Define Class Names class_names = [ 'Basal Cell Carcinoma', 'Darier_s Disease', 'Epidermolysis Bullosa Pruriginosa', 'Hailey-Hailey Disease', 'Herpes Simplex', 'Impetigo', 'Larva Migrans', 'Leprosy Borderline', 'Leprosy Lepromatous', 'Leprosy Tuberculoid', 'Lichen Planus', 'Lupus Erythematosus Chronicus Discoides', 'Melanoma', 'Molluscum Contagiosum', 'Mycosis Fungoides', 'Neurofibromatosis', 'Papilomatosis Confluentes And Reticulate', 'Pediculosis Capitis', 'Pityriasis Rosea', 'Porokeratosis Actinic', 'Psoriasis', 'Tinea Corporis', 'Tinea Nigra', 'Tungiasis', 'actinic keratosis', 'dermatofibroma', 'nevus', 'pigmented benign keratosis', 'seborrheic keratosis', 'squamous cell carcinoma', 'vascular lesion' ] # Streamlit UI st.set_page_config(page_title="Skin Disease Detection", layout="centered") st.title("🩺 AI-Powered Skin Disease Detector") st.write("Upload an image of a skin condition and let AI analyze the possible disease.") # Upload Image uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) if uploaded_file is not None: # Display Image image = Image.open(uploaded_file) st.image(image, caption="Uploaded Image", use_container_width=True) # Preprocess Image image = image.convert("RGB") encoding = image_processor(image, return_tensors="pt") # Predict with torch.no_grad(): outputs = model(**encoding) logits = outputs.logits predicted_class_idx = logits.argmax(-1).item() predicted_class_name = class_names[predicted_class_idx] # Display Result st.success(f"🩺 **Predicted Disease:** {predicted_class_name}")