Spaces:
Sleeping
Sleeping
Create app.py
Browse files
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)
|