tuan2308 commited on
Commit
84c7a75
·
verified ·
1 Parent(s): 5adbc6a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -6
app.py CHANGED
@@ -1,12 +1,11 @@
1
  import os
2
  import gradio as gr
3
- from gradio_imageslider import ImageSlider
4
  from loadimg import load_img
5
  import spaces
6
  from transformers import AutoModelForImageSegmentation
7
  import torch
8
  from torchvision import transforms
9
- import uuid # Thêm thư viện uuid để tạo UUID
10
 
11
  torch.set_float32_matmul_precision(["high", "highest"][0])
12
 
@@ -25,7 +24,7 @@ transform_image = transforms.Compose(
25
  def create_session_folder():
26
  """Tạo thư mục duy nhất dựa trên UUID cho mỗi phiên làm việc."""
27
  session_id = str(uuid.uuid4()) # Tạo UUID duy nhất
28
- session_folder = os.path.join('output_images', session_id)
29
  os.makedirs(session_folder, exist_ok=True)
30
  return session_folder, session_id
31
 
@@ -39,15 +38,27 @@ def process(image):
39
  pred = preds[0].squeeze()
40
  pred_pil = transforms.ToPILImage()(pred)
41
  mask = pred_pil.resize(image_size)
42
- return mask
 
 
 
 
 
 
 
 
 
 
 
 
43
 
44
  def fn(image):
45
  session_folder, session_id = create_session_folder()
46
  im = load_img(image, output_type="pil")
47
  im = im.convert("RGB")
48
  mask = process(im)
49
- image_path = os.path.join(session_folder, "mask.png")
50
- mask.save(image_path)
51
  return image_path
52
 
53
  image = gr.Image(label="Upload an image")
 
1
  import os
2
  import gradio as gr
 
3
  from loadimg import load_img
4
  import spaces
5
  from transformers import AutoModelForImageSegmentation
6
  import torch
7
  from torchvision import transforms
8
+ import uuid # Thư viện uuid để tạo UUID
9
 
10
  torch.set_float32_matmul_precision(["high", "highest"][0])
11
 
 
24
  def create_session_folder():
25
  """Tạo thư mục duy nhất dựa trên UUID cho mỗi phiên làm việc."""
26
  session_id = str(uuid.uuid4()) # Tạo UUID duy nhất
27
+ session_folder = os.path.join("output_images", session_id)
28
  os.makedirs(session_folder, exist_ok=True)
29
  return session_folder, session_id
30
 
 
38
  pred = preds[0].squeeze()
39
  pred_pil = transforms.ToPILImage()(pred)
40
  mask = pred_pil.resize(image_size)
41
+
42
+ # Tạo ảnh PNG trong suốt
43
+ transparent_mask = mask.convert("L") # Chuyển thành ảnh grayscale
44
+ result = mask.convert("RGBA")
45
+ pixels = result.load()
46
+
47
+ for i in range(result.width):
48
+ for j in range(result.height):
49
+ # Đặt màu đen với độ trong suốt
50
+ alpha = transparent_mask.getpixel((i, j))
51
+ pixels[i, j] = (0, 0, 0, alpha)
52
+
53
+ return result
54
 
55
  def fn(image):
56
  session_folder, session_id = create_session_folder()
57
  im = load_img(image, output_type="pil")
58
  im = im.convert("RGB")
59
  mask = process(im)
60
+ image_path = os.path.join(session_folder, "transparent_mask.png")
61
+ mask.save(image_path, "PNG")
62
  return image_path
63
 
64
  image = gr.Image(label="Upload an image")