pngwn HF staff commited on
Commit
d3530a8
1 Parent(s): a740f1b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -35
app.py CHANGED
@@ -4,41 +4,6 @@ import numpy as np
4
  from typing import TypedDict
5
 
6
 
7
- class ImageData(TypedDict):
8
- background: np.ndarray
9
- layers: list[np.ndarray]
10
-
11
-
12
- def mask(image: ImageData):
13
- bg = image.get("background", None)
14
- layers = image.get("layers", [])
15
-
16
- if bg is None and not layers:
17
- raise ValueError("No background or layers provided")
18
-
19
- mask = layers[0]
20
- for layer in layers[1:]:
21
- mask = combine_masks(mask, layer)
22
-
23
- # save images or use them elsewhere
24
- # Image.fromarray(mask).save("mask.png")
25
- # Image.fromarray(bg).save("bg.png")
26
-
27
- mask = make_grey(mask)
28
-
29
- return [bg, mask]
30
-
31
-
32
- with gr.Blocks() as demo:
33
- imed = gr.ImageEditor()
34
- im_1 = gr.Image()
35
- im_2 = gr.Image()
36
- imed.apply(mask, inputs=imed, outputs=[im_1, im_2])
37
-
38
- if __name__ == "__main__":
39
- demo.launch()
40
-
41
-
42
  def combine_masks(im_1: np.ndarray, im_2: np.ndarray):
43
  """
44
  Layers images on top of each other, with the foreground image overwriting the background.
@@ -78,3 +43,39 @@ def make_grey(image: np.ndarray, grey_value: int = 128):
78
 
79
  # combine channels and return
80
  return np.dstack((rgb, alpha))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  from typing import TypedDict
5
 
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  def combine_masks(im_1: np.ndarray, im_2: np.ndarray):
8
  """
9
  Layers images on top of each other, with the foreground image overwriting the background.
 
43
 
44
  # combine channels and return
45
  return np.dstack((rgb, alpha))
46
+
47
+ class ImageData(TypedDict):
48
+ background: np.ndarray
49
+ layers: list[np.ndarray]
50
+
51
+
52
+ def mask(image: ImageData):
53
+ bg = image.get("background", None)
54
+ layers = image.get("layers", [])
55
+
56
+ if bg is None and not layers:
57
+ raise ValueError("No background or layers provided")
58
+
59
+ mask = layers[0]
60
+ for layer in layers[1:]:
61
+ mask = combine_masks(mask, layer)
62
+
63
+ # save images or use them elsewhere
64
+ # Image.fromarray(mask).save("mask.png")
65
+ # Image.fromarray(bg).save("bg.png")
66
+
67
+ mask = make_grey(mask)
68
+
69
+ return [bg, mask]
70
+
71
+
72
+ with gr.Blocks() as demo:
73
+ imed = gr.ImageEditor()
74
+ im_1 = gr.Image()
75
+ im_2 = gr.Image()
76
+ imed.apply(mask, inputs=imed, outputs=[im_1, im_2])
77
+
78
+ if __name__ == "__main__":
79
+ demo.launch()
80
+
81
+