Doubleupai commited on
Commit
5fa6790
·
verified ·
1 Parent(s): 6e64ca5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -26
app.py CHANGED
@@ -1,35 +1,28 @@
1
  import gradio as gr
2
  from PIL import Image
3
- import numpy as np
4
- from realesrgan import RealESRGANer
5
- import os
6
 
7
- # Проверка наличия модели
8
- def check_model_path(model_path):
9
- if not os.path.exists(model_path):
10
- raise FileNotFoundError(f"Модель не найдена по пути: {model_path}. Скачайте модель и поместите её в папку 'weights'.")
11
-
12
- # Инициализация модели Real-ESRGAN
13
  def load_model():
14
- model_path = "weights/RealESRGAN_x4plus.pth" # Путь к модели
15
- check_model_path(model_path) # Проверка наличия модели
16
-
17
- model = RealESRGANer(
18
- scale=4,
19
- model_path=model_path,
20
- model=None,
21
- tile=0,
22
- tile_pad=10,
23
- pre_pad=0,
24
- half=False
25
- )
26
  return model
27
 
28
  # Функция для увеличения разрешения изображения
29
  def upscale_image(image):
30
- img = np.array(image)
31
- output, _ = model.enhance(img, outscale=4)
32
- return Image.fromarray(output)
 
 
 
 
 
 
 
 
 
33
 
34
  # Загрузка модели
35
  model = load_model()
@@ -39,8 +32,8 @@ iface = gr.Interface(
39
  fn=upscale_image,
40
  inputs=gr.Image(type="pil", label="Входное изображение"),
41
  outputs=gr.Image(type="pil", label="Увеличенное изображение"),
42
- title="AI Image Upscaler",
43
- description="Загрузите изображение, чтобы увеличить его разрешение с помощью Real-ESRGAN."
44
  )
45
 
46
  # Запуск интерфейса
 
1
  import gradio as gr
2
  from PIL import Image
3
+ import torch
4
+ from torchvision import transforms
 
5
 
6
+ # Загрузка предобученной модели ESRGAN через torch.hub
 
 
 
 
 
7
  def load_model():
8
+ model = torch.hub.load('pytorch/vision:v0.10.0', 'esrgan', pretrained=True)
9
+ model.eval()
 
 
 
 
 
 
 
 
 
 
10
  return model
11
 
12
  # Функция для увеличения разрешения изображения
13
  def upscale_image(image):
14
+ # Преобразование изображения в тензор
15
+ input_image = transforms.ToTensor()(image).unsqueeze(0)
16
+
17
+ # Увеличение разрешения с помощью модели
18
+ with torch.no_grad():
19
+ output_image = model(input_image)
20
+
21
+ # Преобразование тензора обратно в изображение
22
+ output_image = output_image.squeeze(0).clamp(0, 1)
23
+ output_image = transforms.ToPILImage()(output_image)
24
+
25
+ return output_image
26
 
27
  # Загрузка модели
28
  model = load_model()
 
32
  fn=upscale_image,
33
  inputs=gr.Image(type="pil", label="Входное изображение"),
34
  outputs=gr.Image(type="pil", label="Увеличенное изображение"),
35
+ title="AI Image Upscaler (ESRGAN)",
36
+ description="Загрузите изображение, чтобы увеличить его разрешение с помощью ESRGAN."
37
  )
38
 
39
  # Запуск интерфейса