|
|
import torch |
|
|
import gradio as gr |
|
|
from PIL import Image |
|
|
from diffusers import DiffusionPipeline |
|
|
from transformers import pipeline |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
classifier = pipeline( |
|
|
"image-classification", |
|
|
model="imfarzanansari/skintelligent-acne", |
|
|
device=0 |
|
|
) |
|
|
|
|
|
GRADE_MAP = { |
|
|
"Clear Skin": 0, |
|
|
"Mild Acne": 1, |
|
|
"Moderate Acne": 2, |
|
|
"Severe Acne": 3 |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
with gr.Blocks(title="Skin Acne AI") as demo: |
|
|
gr.Markdown("## Análisis de Acné con IA") |
|
|
gr.Markdown( |
|
|
"Sube una imagen de la piel. " |
|
|
"El sistema devuelve un **GRADE dermatológico no clínico**." |
|
|
) |
|
|
|
|
|
with gr.Row(): |
|
|
with gr.Column(): |
|
|
input_image = gr.Image(type="pil", label="Imagen de la piel") |
|
|
btn = gr.Button("Analizar") |
|
|
|
|
|
with gr.Column(): |
|
|
output_image = gr.Image(label="Imagen procesada") |
|
|
label_out = gr.Textbox(label="Diagnóstico IA") |
|
|
grade_out = gr.Textbox(label="Grade (0–3)") |
|
|
conf_out = gr.Textbox(label="Confianza") |
|
|
|
|
|
btn.click( |
|
|
|
|
|
inputs=[input_image], |
|
|
outputs=[output_image, label_out, grade_out, conf_out] |
|
|
) |
|
|
|
|
|
demo.launch() |
|
|
|