add filter
Browse files- app_base.py +45 -3
app_base.py
CHANGED
@@ -5,7 +5,7 @@ import torch
|
|
5 |
import os
|
6 |
import gc
|
7 |
|
8 |
-
from PIL import Image, ImageEnhance
|
9 |
from segment_utils import(
|
10 |
segment_image,
|
11 |
restore_result_and_save,
|
@@ -18,6 +18,16 @@ DEFAULT_EDIT_PROMPT = "a person with perfect face"
|
|
18 |
|
19 |
DEFAULT_CATEGORY = "face"
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
@spaces.GPU(duration=10)
|
22 |
@torch.inference_mode()
|
23 |
@torch.no_grad()
|
@@ -31,6 +41,10 @@ def image_to_image(
|
|
31 |
start_step: int,
|
32 |
guidance_scale: float,
|
33 |
brightness: float = 1.0,
|
|
|
|
|
|
|
|
|
34 |
):
|
35 |
w2 = 1.0
|
36 |
run_task_time = 0
|
@@ -70,6 +84,29 @@ def image_to_image(
|
|
70 |
|
71 |
enhancer = ImageEnhance.Brightness(enhanced_image)
|
72 |
enhanced_image = enhancer.enhance(brightness)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
|
74 |
return enhanced_image, time_cost_str
|
75 |
|
@@ -108,7 +145,11 @@ def create_demo() -> gr.Blocks:
|
|
108 |
with gr.Column():
|
109 |
input_image_prompt = gr.Textbox(lines=1, label="Input Image Prompt", value=DEFAULT_SRC_PROMPT)
|
110 |
edit_prompt = gr.Textbox(lines=1, label="Edit Prompt", value=DEFAULT_EDIT_PROMPT)
|
111 |
-
|
|
|
|
|
|
|
|
|
112 |
with gr.Accordion("Advanced Options", open=False):
|
113 |
category = gr.Textbox(label="Category", value=DEFAULT_CATEGORY, visible=False)
|
114 |
mask_expansion = gr.Number(label="Mask Expansion", value=50, visible=True)
|
@@ -117,6 +158,7 @@ def create_demo() -> gr.Blocks:
|
|
117 |
with gr.Column():
|
118 |
num_steps = gr.Slider(minimum=1, maximum=100, value=20, step=1, label="Num Steps")
|
119 |
start_step = gr.Slider(minimum=1, maximum=100, value=15, step=1, label="Start Step")
|
|
|
120 |
g_btn = gr.Button("Edit Image")
|
121 |
with gr.Accordion("Advanced Options", open=False):
|
122 |
guidance_scale = gr.Slider(minimum=0, maximum=20, value=0, step=0.5, label="Guidance Scale")
|
@@ -140,7 +182,7 @@ def create_demo() -> gr.Blocks:
|
|
140 |
outputs=[origin_area_image, cropper],
|
141 |
).success(
|
142 |
fn=image_to_image,
|
143 |
-
inputs=[origin_area_image, input_image_prompt, edit_prompt,seed,w1, num_steps, start_step, guidance_scale, brightness],
|
144 |
outputs=[enhanced_image, generated_cost],
|
145 |
).success(
|
146 |
fn=restore_result_and_save,
|
|
|
5 |
import os
|
6 |
import gc
|
7 |
|
8 |
+
from PIL import Image, ImageEnhance, ImageFilter
|
9 |
from segment_utils import(
|
10 |
segment_image,
|
11 |
restore_result_and_save,
|
|
|
18 |
|
19 |
DEFAULT_CATEGORY = "face"
|
20 |
|
21 |
+
filter_names = [
|
22 |
+
"NONE",
|
23 |
+
"DETAIL",
|
24 |
+
"SMOOTH",
|
25 |
+
"SMOOTH_MORE",
|
26 |
+
"SHARPEN",
|
27 |
+
"EDGE_ENHANCE",
|
28 |
+
"EDGE_ENHANCE_MORE",
|
29 |
+
]
|
30 |
+
|
31 |
@spaces.GPU(duration=10)
|
32 |
@torch.inference_mode()
|
33 |
@torch.no_grad()
|
|
|
41 |
start_step: int,
|
42 |
guidance_scale: float,
|
43 |
brightness: float = 1.0,
|
44 |
+
color: float = 1.0,
|
45 |
+
contrast: float = 1.0,
|
46 |
+
sharpness: float = 1.0,
|
47 |
+
filter: str = "NONE",
|
48 |
):
|
49 |
w2 = 1.0
|
50 |
run_task_time = 0
|
|
|
84 |
|
85 |
enhancer = ImageEnhance.Brightness(enhanced_image)
|
86 |
enhanced_image = enhancer.enhance(brightness)
|
87 |
+
enhancer = ImageEnhance.Color(enhanced_image)
|
88 |
+
enhanced_image = enhancer.enhance(color)
|
89 |
+
enhancer = ImageEnhance.Contrast(enhanced_image)
|
90 |
+
enhanced_image = enhancer.enhance(contrast)
|
91 |
+
enhancer = ImageEnhance.Sharpness(enhanced_image)
|
92 |
+
enhanced_image = enhancer.enhance(sharpness)
|
93 |
+
|
94 |
+
if filter == "NONE":
|
95 |
+
pass
|
96 |
+
elif filter == "DETAIL":
|
97 |
+
enhanced_image = enhanced_image.filter(ImageFilter.DETAIL)
|
98 |
+
elif filter == "SMOOTH":
|
99 |
+
enhanced_image = enhanced_image.filter(ImageFilter.SMOOTH)
|
100 |
+
elif filter == "SMOOTH_MORE":
|
101 |
+
enhanced_image = enhanced_image.filter(ImageFilter.SMOOTH_MORE)
|
102 |
+
elif filter == "SHARPEN":
|
103 |
+
enhanced_image = enhanced_image.filter(ImageFilter.SHARPEN)
|
104 |
+
elif filter == "EDGE_ENHANCE":
|
105 |
+
enhanced_image = enhanced_image.filter(ImageFilter.EDGE_ENHANCE)
|
106 |
+
elif filter == "EDGE_ENHANCE_MORE":
|
107 |
+
enhanced_image = enhanced_image.filter(ImageFilter.EDGE_ENHANCE_MORE)
|
108 |
+
|
109 |
+
run_task_time, time_cost_str = get_time_cost(run_task_time, time_cost_str, 'image_enhance done')
|
110 |
|
111 |
return enhanced_image, time_cost_str
|
112 |
|
|
|
145 |
with gr.Column():
|
146 |
input_image_prompt = gr.Textbox(lines=1, label="Input Image Prompt", value=DEFAULT_SRC_PROMPT)
|
147 |
edit_prompt = gr.Textbox(lines=1, label="Edit Prompt", value=DEFAULT_EDIT_PROMPT)
|
148 |
+
with gr.Row():
|
149 |
+
brightness = gr.Number(label="Brightness", value=1.0, minimum=0.0, maximum=2.0, step=0.01)
|
150 |
+
color = gr.Number(label="Color", value=1.0, minimum=0.0, maximum=2.0, step=0.01)
|
151 |
+
contrast = gr.Number(label="Contrast", value=1.0, minimum=0.0, maximum=2.0, step=0.01)
|
152 |
+
sharpness = gr.Number(label="Sharpness", value=1.0, minimum=0.0, maximum=2.0, step=0.01)
|
153 |
with gr.Accordion("Advanced Options", open=False):
|
154 |
category = gr.Textbox(label="Category", value=DEFAULT_CATEGORY, visible=False)
|
155 |
mask_expansion = gr.Number(label="Mask Expansion", value=50, visible=True)
|
|
|
158 |
with gr.Column():
|
159 |
num_steps = gr.Slider(minimum=1, maximum=100, value=20, step=1, label="Num Steps")
|
160 |
start_step = gr.Slider(minimum=1, maximum=100, value=15, step=1, label="Start Step")
|
161 |
+
filter = gr.Dropdown(choices=filter_names, label="Filter", value="NONE")
|
162 |
g_btn = gr.Button("Edit Image")
|
163 |
with gr.Accordion("Advanced Options", open=False):
|
164 |
guidance_scale = gr.Slider(minimum=0, maximum=20, value=0, step=0.5, label="Guidance Scale")
|
|
|
182 |
outputs=[origin_area_image, cropper],
|
183 |
).success(
|
184 |
fn=image_to_image,
|
185 |
+
inputs=[origin_area_image, input_image_prompt, edit_prompt,seed,w1, num_steps, start_step, guidance_scale, brightness, color, contrast, sharpness, filter],
|
186 |
outputs=[enhanced_image, generated_cost],
|
187 |
).success(
|
188 |
fn=restore_result_and_save,
|