Eraly-ml commited on
Commit
3730082
·
verified ·
1 Parent(s): dbea299

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -13
app.py CHANGED
@@ -34,6 +34,9 @@ preprocess = transforms.Compose([
34
 
35
  # Функция предсказания
36
  def predict(image):
 
 
 
37
  image = image.convert("RGB")
38
  image_tensor = preprocess(image).unsqueeze(0)
39
 
@@ -43,20 +46,49 @@ def predict(image):
43
 
44
  return {label: float(score) for label, score in zip(labels, scores)}
45
 
46
- # Параметры интерфейса
47
- title = "Skin-AI"
48
- description = "Sube una imagen"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
- # Создаём интерфейс в стиле, максимально похожем на Spaces
51
- interface = gr.Interface(
52
- fn=predict,
53
- inputs=gr.Image(type="pil", label="Imagen de entrada"),
54
- outputs=gr.Label(num_top_classes=3, label="Predicciones"),
55
- title=title,
56
- description=description,
57
- theme=gr.themes.Soft(primary_hue="purple") # «Фиолетовая» тема, как на скриншоте
58
- )
59
 
60
  # Запуск приложения
61
  if __name__ == "__main__":
62
- interface.launch(server_name="0.0.0.0", server_port=7860)
 
34
 
35
  # Функция предсказания
36
  def predict(image):
37
+ if image is None:
38
+ raise gr.Error("Пожалуйста, загрузите изображение")
39
+
40
  image = image.convert("RGB")
41
  image_tensor = preprocess(image).unsqueeze(0)
42
 
 
46
 
47
  return {label: float(score) for label, score in zip(labels, scores)}
48
 
49
+ # Создаем интерфейс с использованием gr.Blocks
50
+ with gr.Blocks(theme=gr.themes.Soft(primary_hue="purple", secondary_hue="purple")) as demo:
51
+ gr.Markdown("# 🩺 Skin-AI")
52
+ gr.Markdown("### Диагностика кожных заболеваний через анализ изображений")
53
+
54
+ with gr.Row():
55
+ with gr.Column(scale=2):
56
+ image_input = gr.Image(
57
+ type="pil",
58
+ label="Загрузите изображение кожи",
59
+ height=400,
60
+ tool="editor",
61
+ show_label=True,
62
+ show_download_button=True
63
+ )
64
+
65
+ examples = gr.Examples(
66
+ examples=["example1.jpg", "example2.jpg", "example3.jpg"],
67
+ inputs=image_input,
68
+ label="Примеры изображений",
69
+ examples_per_page=3
70
+ )
71
+
72
+ with gr.Column(scale=1):
73
+ output_label = gr.Label(
74
+ label="Результат диагностики",
75
+ num_top_classes=3,
76
+ show_label=True,
77
+ show_confidences=True
78
+ )
79
+
80
+ gr.Markdown("### Рекомендации:")
81
+ gr.Markdown("- Изображение должно быть четким и хорошо освещенным")
82
+ gr.Markdown("- Рекомендуется использовать фото без вспышки")
83
+ gr.Markdown("- Размер файла не должен превышать 10 МБ")
84
 
85
+ image_input.change(
86
+ fn=predict,
87
+ inputs=image_input,
88
+ outputs=output_label,
89
+ show_progress=True
90
+ )
 
 
 
91
 
92
  # Запуск приложения
93
  if __name__ == "__main__":
94
+ demo.launch(server_name="0.0.0.0", server_port=7860)