import gradio as gr import numpy as np from PIL import Image import tensorflow as tf from tensorflow.keras.applications.mobilenet_v2 import preprocess_input # Cargar modelo model = tf.keras.models.load_model("modelo.h5") # Clases (ajústalas según tu dataset) clases = ["Nevo", "Queratosis", "Carcinoma", "Melanoma", "Dermatitis"] # Función de predicción def predict(image): image = image.resize((224, 224)) img = np.array(image) # Preprocesamiento correcto para MobileNetV2 img = preprocess_input(img) img = np.expand_dims(img, axis=0) pred = model.predict(img) idx = np.argmax(pred) confianza = float(np.max(pred)) return { clases[i]: float(pred[0][i]) for i in range(len(clases)) } # Interfaz interface = gr.Interface( fn=predict, inputs=gr.Image(type="pil"), outputs=gr.Label(num_top_classes=3), title="🧠 Derm-IA", description="Asistente de diagnóstico dermatológico basado en IA" ) interface.launch()