hayaboy commited on
Commit
820f4f3
ยท
verified ยท
1 Parent(s): 1a03709

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +143 -0
app.py ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ with gr.Blocks(theme=gr.themes.Default()) as app:
3
+ with gr.Tab("์‚ฝํ™” ์ƒ์„ฑ"):
4
+ with gr.Row():
5
+ # 1
6
+ gr.Markdown(
7
+ value="""
8
+ # ์‚ฝํ™” ์ƒ์„ฑ
9
+ ์งง์€ ์†Œ์„ค์— ์–ด์šธ๋ฆฌ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
10
+ """
11
+ )
12
+ with gr.Row():
13
+ # column1
14
+ with gr.Column(scale=5):
15
+ # 2
16
+ pos_prompt = gr.Textbox(
17
+ label="์ด๋ฏธ์ง€ ์ƒ์„ฑ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”",
18
+ value="ultra realistic close up portrait ((beautiful pale cyberpunk female with heavy black eyeliner))",
19
+ lines=8,
20
+ interactive=True,
21
+ )
22
+ with gr.Row():
23
+ # 3
24
+ auto_prompt_generator = gr.Textbox(
25
+ label="์ž๋™ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ",
26
+ lines=6,
27
+ placeholder="์ด๋ฏธ์ง€ ์ƒ์„ฑ์„ ์œ„ํ•œ ์†Œ์„ค ๋‚ด์šฉ์„ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.\n์ž๋™์œผ๋กœ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.",
28
+ scale=7,
29
+ )
30
+ # 4
31
+ prompt_generator_btn = gr.Button(scale=1, value="์ž๋™\n์ƒ์„ฑ")
32
+
33
+ with gr.Group():
34
+ with gr.Row():
35
+ # 5
36
+ img_width = gr.Slider(
37
+ label="=Width", maximum=1024, value=512, interactive=True
38
+ )
39
+ # 6
40
+ img_height = gr.Slider(
41
+ label="=Height", maximum=1024, value=512, interactive=True
42
+ )
43
+
44
+ # column2
45
+ with gr.Column(scale=3):
46
+ # 7
47
+ output_status = gr.Textbox(
48
+ show_label=False, lines=1, placeholder="์ด๋ฏธ์ง€ ์ƒํƒœ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค."
49
+ )
50
+ # 8
51
+ generator_img = gr.Image(
52
+ value="https://pub-3626123a908346a7a8be8d9295f44e26.r2.dev/generations/8c595b57-563c-4417-9bfb-96aaebbb30b3-0.png",
53
+ label="์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.",
54
+ )
55
+ # 9
56
+ generator_img_btn = gr.Button(value="์ด๋ฏธ์ง€ ์ƒ์„ฑ")
57
+ # 10
58
+ refresh_img_btn = gr.Button(value="์ด๋ฏธ์ง€ ์ƒˆ๋กœ๊ณ ์นจ")
59
+ # ์ž๋™ ์ƒ์„ฑ ๋ฒ„ํŠผ ํด๋ฆญ
60
+ prompt_generator_btn.click(
61
+ fn=novel_keyword,
62
+ inputs=[auto_prompt_generator],
63
+ outputs=[pos_prompt]
64
+ ) # ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฒ„ํŠผ ํด๋ฆญ
65
+ generator_img_btn.click(
66
+ fn=sd_call,
67
+ inputs=[pos_prompt, img_width, img_height],
68
+ outputs=[generator_img, output_status]
69
+ ) # ์ด๋ฏธ์ง€ ์ƒˆ๋กœ๊ณ ์นจ ๋ฒ„ํŠผ ํด๋ฆญ
70
+ refresh_img_btn.click(
71
+ fn=sd_recall,
72
+ inputs=[output_status],
73
+ outputs=[generator_img]
74
+ )
75
+ with gr.Tab("์ด๋ฏธ์ง€ ํŽธ์ง‘") as edit_tab:
76
+ with gr.Row():
77
+ #1
78
+ gr.Markdown(
79
+ value="""
80
+ # ์ด๋ฏธ์ง€ ํŽธ์ง‘
81
+ ์ƒ์„ฑํ•œ ์ด๋ฏธ์ง€๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
82
+ """)
83
+ with gr.Row():
84
+ #2
85
+ edit_prompt = gr.Textbox(
86
+ label="์ด๋ฏธ์ง€ ์ˆ˜์ • ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”",
87
+ value="black hair",
88
+ lines=5,
89
+ interactive=True,
90
+ scale=7
91
+ )
92
+ #3
93
+ edit_btn = gr.Button(
94
+ value="์ด๋ฏธ์ง€ ํŽธ์ง‘",
95
+ scale=1
96
+ )
97
+ with gr.Row():
98
+ #4
99
+ edit_status = gr.Textbox(
100
+ show_label=False,
101
+ lines=1,
102
+ placeholder="ํŽธ์ง‘ ์ด๋ฏธ์ง€ ์ƒํƒœ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.",
103
+ scale=7
104
+ )
105
+ #5
106
+ refresh_edit_btn = gr.Button(
107
+ value="์ด๋ฏธ์ง€ ์ƒˆ๋กœ๊ณ ์นจ",
108
+ scale=1
109
+ )
110
+ with gr.Row():
111
+ #6
112
+ org_img = gr.ImageMask(
113
+ label="์ˆ˜์ • ์ „ ์ด๋ฏธ์ง€",
114
+ image_mode='RGB',
115
+ brush = gr.Brush(
116
+ default_size=20,
117
+ colors=["#FFFFFF"],
118
+ color_mode="fixed",
119
+ ),
120
+ show_label=True
121
+ )
122
+ #7
123
+ edit_img = gr.Image(
124
+ label="์ˆ˜์ • ํ›„ ์ด๋ฏธ์ง€",
125
+ )
126
+ edit_tab.select(
127
+ fn=edit_load_img,
128
+ inputs=[generator_img],
129
+ outputs=[org_img]
130
+ )
131
+ #์ด๋ฏธ์ง€ ํŽธ์ง‘ ๋ฒ„ํŠผ ํด๋ฆญ
132
+ edit_btn.click(
133
+ fn=edit_img_generator,
134
+ inputs=[org_img, edit_prompt],
135
+ outputs=[edit_img, edit_status]
136
+ )
137
+ #์ด๋ฏธ์ง€
138
+ refresh_edit_btn.click(
139
+ fn=sd_edit_recall,
140
+ inputs=[edit_status],
141
+ outputs=[edit_img]
142
+ )
143
+ app.launch(debug=True)