jpjp9292 commited on
Commit
40aa78d
ยท
verified ยท
1 Parent(s): 37ca98c

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -0
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from rembg import remove
3
+ from PIL import Image
4
+ import logging
5
+
6
+ # ๋กœ๊น… ์„ค์ •
7
+ logging.basicConfig(level=logging.INFO)
8
+
9
+ def remove_background(input_image):
10
+ """
11
+ ์ž…๋ ฅ๋œ ์ด๋ฏธ์ง€์—์„œ ๋ฐฐ๊ฒฝ์„ ์ œ๊ฑฐํ•˜๋Š” ํ•จ์ˆ˜
12
+
13
+ Parameters:
14
+ input_image (PIL.Image ๋˜๋Š” str): ์—…๋กœ๋“œ๋œ ์ด๋ฏธ์ง€ ํŒŒ์ผ์˜ ๊ฐ์ฒด ๋˜๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ
15
+
16
+ Returns:
17
+ PIL.Image ๋˜๋Š” str: ๋ฐฐ๊ฒฝ์ด ์ œ๊ฑฐ๋œ ์ด๋ฏธ์ง€ ๋˜๋Š” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€
18
+ """
19
+ try:
20
+ logging.info("Processing image.")
21
+
22
+ if isinstance(input_image, str):
23
+ input_img = Image.open(input_image)
24
+ else:
25
+ input_img = input_image
26
+
27
+ # ๋ฐฐ๊ฒฝ ์ œ๊ฑฐ
28
+ output_img = remove(input_img)
29
+ logging.info("Background removed successfully.")
30
+
31
+ # ํˆฌ๋ช…๋„๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด PNG ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜
32
+ return output_img.convert("RGBA")
33
+ except Exception as e:
34
+ logging.error(f"Error removing background: {e}")
35
+ return f"์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค: {str(e)}"
36
+
37
+ # Gradio ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์„ฑ
38
+ with gr.Blocks() as demo:
39
+ gr.Markdown("# ์ด๋ฏธ์ง€ ๋ฐฐ๊ฒฝ ์ œ๊ฑฐ๊ธฐ")
40
+ gr.Markdown("์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด ๋ฐฐ๊ฒฝ์ด ์ž๋™์œผ๋กœ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.")
41
+
42
+ with gr.Row():
43
+ input_image = gr.Image(
44
+ type="pil",
45
+ label="์ž…๋ ฅ ์ด๋ฏธ์ง€",
46
+ interactive=True # ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •
47
+ )
48
+ output_image = gr.Image(
49
+ type="pil",
50
+ label="๋ฐฐ๊ฒฝ ์ œ๊ฑฐ๋œ ์ด๋ฏธ์ง€",
51
+ interactive=False # ์ถœ๋ ฅ ์ด๋ฏธ์ง€๋Š” ์ƒํ˜ธ์ž‘์šฉ ๋ถˆ๊ฐ€๋Šฅ
52
+ )
53
+
54
+ # ๋ฐฐ๊ฒฝ ์ œ๊ฑฐ ๋ฒ„ํŠผ
55
+ btn = gr.Button("๋ฐฐ๊ฒฝ ์ œ๊ฑฐ")
56
+ btn.click(fn=remove_background, inputs=input_image, outputs=output_image)
57
+
58
+ # ์˜ˆ์ œ ์ด๋ฏธ์ง€
59
+ gr.Examples(
60
+ examples=[
61
+ ["examples/example1.jpg"],
62
+ ["examples/example2.png"]
63
+ ],
64
+ inputs=input_image,
65
+ label="์˜ˆ์ œ ์ด๋ฏธ์ง€"
66
+ )
67
+
68
+ gr.Markdown("ยฉ 2024 ์ด๋ฏธ์ง€ ๋ฐฐ๊ฒฝ ์ œ๊ฑฐ๊ธฐ")
69
+
70
+ if __name__ == "__main__":
71
+ demo.launch()