Improve interface
Browse files- gradio_demo.py +22 -18
gradio_demo.py
CHANGED
|
@@ -165,7 +165,6 @@ def stage2_process(input_image, prompt, a_prompt, n_prompt, num_samples, upscale
|
|
| 165 |
Image.fromarray(result).save(f'./history/{event_id[:5]}/{event_id[5:]}/HQ_{i}.png')
|
| 166 |
return [input_image] + results, event_id, 3, ''
|
| 167 |
|
| 168 |
-
@spaces.GPU(duration=120)
|
| 169 |
def load_and_reset(param_setting):
|
| 170 |
if torch.cuda.device_count() == 0:
|
| 171 |
gr.Warning('Set this space to GPU config to make it work.')
|
|
@@ -226,6 +225,7 @@ else:
|
|
| 226 |
⚠️SUPIR is still a research project under tested and is not yet a stable commercial product.
|
| 227 |
|
| 228 |
<a href="https://arxiv.org/abs/2401.13627">Paper</a>   <a href="http://supir.xpixel.group/">Project Page</a>   <a href="https://github.com/Fanghua-Yu/SUPIR/blob/master/assets/DemoGuide.png">How to play</a>
|
|
|
|
| 229 |
"""
|
| 230 |
|
| 231 |
|
|
@@ -252,34 +252,38 @@ with gr.Blocks(title='SUPIR') as interface:
|
|
| 252 |
with gr.Column():
|
| 253 |
gr.Markdown("<center>Stage1 Output</center>")
|
| 254 |
denoise_image = gr.Image(type="numpy", elem_id="image-s1", height=400, width=400)
|
| 255 |
-
prompt = gr.Textbox(label="Prompt", value="")
|
|
|
|
| 256 |
with gr.Accordion("Stage1 options", open=False):
|
| 257 |
gamma_correction = gr.Slider(label="Gamma Correction", minimum=0.1, maximum=2.0, value=1.0, step=0.1)
|
|
|
|
| 258 |
with gr.Accordion("LLaVA options", open=False):
|
| 259 |
-
temperature = gr.Slider(label="Temperature", minimum=0., maximum=1.0, value=0.2, step=0.1)
|
| 260 |
-
top_p = gr.Slider(label="Top P", minimum=0., maximum=1.0, value=0.7, step=0.1)
|
| 261 |
-
qs = gr.Textbox(label="Question",
|
| 262 |
-
|
| 263 |
with gr.Accordion("Stage2 options", open=False):
|
| 264 |
-
num_samples = gr.Slider(label="Num Samples", minimum=1, maximum=4 if not args.use_image_slider else 1
|
| 265 |
, value=1, step=1)
|
| 266 |
-
upscale = gr.Slider(label="Upscale", minimum=1, maximum=8, value=1, step=1)
|
| 267 |
-
edm_steps = gr.Slider(label="Steps", minimum=1, maximum=200, value=default_setting.edm_steps if torch.cuda.device_count() > 0 else 1, step=1)
|
| 268 |
-
s_cfg = gr.Slider(label="Text Guidance Scale", minimum=1.0, maximum=15.0,
|
| 269 |
value=default_setting.s_cfg_Quality if torch.cuda.device_count() > 0 else 1.0, step=0.1)
|
| 270 |
s_stage2 = gr.Slider(label="Stage2 Guidance Strength", minimum=0., maximum=1., value=1., step=0.05)
|
| 271 |
s_stage1 = gr.Slider(label="Stage1 Guidance Strength", minimum=-1.0, maximum=6.0, value=-1.0, step=1.0)
|
| 272 |
-
seed = gr.Slider(label="Seed", minimum=-1, maximum=2147483647, step=1, randomize=True)
|
| 273 |
s_churn = gr.Slider(label="S-Churn", minimum=0, maximum=40, value=5, step=1)
|
| 274 |
s_noise = gr.Slider(label="S-Noise", minimum=1.0, maximum=1.1, value=1.003, step=0.001)
|
| 275 |
a_prompt = gr.Textbox(label="Default Positive Prompt",
|
|
|
|
| 276 |
value='Cinematic, High Contrast, highly detailed, taken using a Canon EOS R '
|
| 277 |
'camera, hyper detailed photo - realistic maximum detail, 32k, Color '
|
| 278 |
'Grading, ultra HD, extreme meticulous detailing, skin pore detailing, '
|
| 279 |
'hyper sharpness, perfect without deformations.')
|
| 280 |
n_prompt = gr.Textbox(label="Default Negative Prompt",
|
| 281 |
-
|
| 282 |
-
|
|
|
|
| 283 |
'worst quality, low quality, frames, watermark, signature, jpeg artifacts, '
|
| 284 |
'deformed, lowres, over-smooth')
|
| 285 |
with gr.Row():
|
|
@@ -313,17 +317,17 @@ with gr.Blocks(title='SUPIR') as interface:
|
|
| 313 |
result_gallery = ImageSlider(label='Output', show_label=False, elem_id="gallery1")
|
| 314 |
with gr.Row():
|
| 315 |
with gr.Column():
|
| 316 |
-
denoise_button = gr.Button(value="Stage1 Run")
|
| 317 |
with gr.Column():
|
| 318 |
llave_button = gr.Button(value="LlaVa Run")
|
| 319 |
with gr.Column():
|
| 320 |
-
diffusion_button = gr.Button(value="Stage2 Run")
|
| 321 |
with gr.Row():
|
| 322 |
with gr.Column():
|
| 323 |
-
param_setting = gr.
|
| 324 |
-
value="Quality")
|
| 325 |
with gr.Column():
|
| 326 |
-
restart_button = gr.Button(value="Reset Param", scale=2)
|
|
|
|
| 327 |
with gr.Accordion("Feedback", open=True):
|
| 328 |
fb_score = gr.Slider(label="Feedback Score", minimum=1, maximum=5, value=3, step=1,
|
| 329 |
interactive=True)
|
|
|
|
| 165 |
Image.fromarray(result).save(f'./history/{event_id[:5]}/{event_id[5:]}/HQ_{i}.png')
|
| 166 |
return [input_image] + results, event_id, 3, ''
|
| 167 |
|
|
|
|
| 168 |
def load_and_reset(param_setting):
|
| 169 |
if torch.cuda.device_count() == 0:
|
| 170 |
gr.Warning('Set this space to GPU config to make it work.')
|
|
|
|
| 225 |
⚠️SUPIR is still a research project under tested and is not yet a stable commercial product.
|
| 226 |
|
| 227 |
<a href="https://arxiv.org/abs/2401.13627">Paper</a>   <a href="http://supir.xpixel.group/">Project Page</a>   <a href="https://github.com/Fanghua-Yu/SUPIR/blob/master/assets/DemoGuide.png">How to play</a>
|
| 228 |
+
<p style="background-color: orange;">For now, only the stage 2 is working (the most important one). The stage 1 and LLaVa are failing. LLaVa is disabled.</p>
|
| 229 |
"""
|
| 230 |
|
| 231 |
|
|
|
|
| 252 |
with gr.Column():
|
| 253 |
gr.Markdown("<center>Stage1 Output</center>")
|
| 254 |
denoise_image = gr.Image(type="numpy", elem_id="image-s1", height=400, width=400)
|
| 255 |
+
prompt = gr.Textbox(label="Prompt", value="", placeholder="A person, walking, in a town, Summer, photorealistic")
|
| 256 |
+
|
| 257 |
with gr.Accordion("Stage1 options", open=False):
|
| 258 |
gamma_correction = gr.Slider(label="Gamma Correction", minimum=0.1, maximum=2.0, value=1.0, step=0.1)
|
| 259 |
+
|
| 260 |
with gr.Accordion("LLaVA options", open=False):
|
| 261 |
+
temperature = gr.Slider(label="Temperature", info = "lower=Always similar, higher=More creative", minimum=0., maximum=1.0, value=0.2, step=0.1)
|
| 262 |
+
top_p = gr.Slider(label="Top P", info = "Percent of tokens shortlisted", minimum=0., maximum=1.0, value=0.7, step=0.1)
|
| 263 |
+
qs = gr.Textbox(label="Question", info="Describe the image and its style in a very detailed manner", placeholder="The image is a realistic photography, not an art painting.")
|
| 264 |
+
|
| 265 |
with gr.Accordion("Stage2 options", open=False):
|
| 266 |
+
num_samples = gr.Slider(label="Num Samples", info="Number of generated results; I discourage to increase because the process is limited to 2 min", minimum=1, maximum=4 if not args.use_image_slider else 1
|
| 267 |
, value=1, step=1)
|
| 268 |
+
upscale = gr.Slider(label="Upscale", info="The resolution increase factor", minimum=1, maximum=8, value=1, step=1)
|
| 269 |
+
edm_steps = gr.Slider(label="Steps", info="lower=faster, higher=more details", minimum=1, maximum=200, value=default_setting.edm_steps if torch.cuda.device_count() > 0 else 1, step=1)
|
| 270 |
+
s_cfg = gr.Slider(label="Text Guidance Scale", info="lower=follow the image, higher=follow the prompt", minimum=1.0, maximum=15.0,
|
| 271 |
value=default_setting.s_cfg_Quality if torch.cuda.device_count() > 0 else 1.0, step=0.1)
|
| 272 |
s_stage2 = gr.Slider(label="Stage2 Guidance Strength", minimum=0., maximum=1., value=1., step=0.05)
|
| 273 |
s_stage1 = gr.Slider(label="Stage1 Guidance Strength", minimum=-1.0, maximum=6.0, value=-1.0, step=1.0)
|
| 274 |
+
seed = gr.Slider(label="Seed", info="-1=Different each time, other=Reproducible", minimum=-1, maximum=2147483647, step=1, randomize=True)
|
| 275 |
s_churn = gr.Slider(label="S-Churn", minimum=0, maximum=40, value=5, step=1)
|
| 276 |
s_noise = gr.Slider(label="S-Noise", minimum=1.0, maximum=1.1, value=1.003, step=0.001)
|
| 277 |
a_prompt = gr.Textbox(label="Default Positive Prompt",
|
| 278 |
+
info="Describe what the image represents",
|
| 279 |
value='Cinematic, High Contrast, highly detailed, taken using a Canon EOS R '
|
| 280 |
'camera, hyper detailed photo - realistic maximum detail, 32k, Color '
|
| 281 |
'Grading, ultra HD, extreme meticulous detailing, skin pore detailing, '
|
| 282 |
'hyper sharpness, perfect without deformations.')
|
| 283 |
n_prompt = gr.Textbox(label="Default Negative Prompt",
|
| 284 |
+
info="List what the image does NOT represent",
|
| 285 |
+
value='painting, oil painting, illustration, drawing, art, sketch, anime, '
|
| 286 |
+
'cartoon, CG Style, 3D render, unreal engine, blurring, bokeh, ugly, dirty, messy, '
|
| 287 |
'worst quality, low quality, frames, watermark, signature, jpeg artifacts, '
|
| 288 |
'deformed, lowres, over-smooth')
|
| 289 |
with gr.Row():
|
|
|
|
| 317 |
result_gallery = ImageSlider(label='Output', show_label=False, elem_id="gallery1")
|
| 318 |
with gr.Row():
|
| 319 |
with gr.Column():
|
| 320 |
+
denoise_button = gr.Button(value="Stage1 Run (out of work)")
|
| 321 |
with gr.Column():
|
| 322 |
llave_button = gr.Button(value="LlaVa Run")
|
| 323 |
with gr.Column():
|
| 324 |
+
diffusion_button = gr.Button(value="Stage2 Run (actual upscaling)", variant = "primary")
|
| 325 |
with gr.Row():
|
| 326 |
with gr.Column():
|
| 327 |
+
param_setting = gr.Radio(["Quality", "Fidelity"], interactive=True, label="Param Setting", value="Quality")
|
|
|
|
| 328 |
with gr.Column():
|
| 329 |
+
restart_button = gr.Button(value="Reset Param", scale=2, variant="stop")
|
| 330 |
+
|
| 331 |
with gr.Accordion("Feedback", open=True):
|
| 332 |
fb_score = gr.Slider(label="Feedback Score", minimum=1, maximum=5, value=3, step=1,
|
| 333 |
interactive=True)
|