Spaces:
Running
Running
Save options
Browse files
app.py
CHANGED
@@ -27,6 +27,79 @@ else:
|
|
27 |
pipe = StableDiffusionXLInpaintPipeline.from_pretrained("diffusers/stable-diffusion-xl-1.0-inpainting-0.1", torch_dtype = floatType, variant = variant)
|
28 |
pipe = pipe.to(device)
|
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
def update_seed(is_randomize_seed, seed):
|
31 |
if is_randomize_seed:
|
32 |
return random.randint(0, max_64_bit_int)
|
@@ -241,6 +314,7 @@ def inpaint_on_gpu(
|
|
241 |
).images[0]
|
242 |
|
243 |
with gr.Blocks() as interface:
|
|
|
244 |
gr.HTML(
|
245 |
"""
|
246 |
<h1 style="text-align: center;">Inpaint / Outpaint</h1>
|
@@ -333,6 +407,76 @@ with gr.Blocks() as interface:
|
|
333 |
mask_image
|
334 |
], scroll_to_output = True)
|
335 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
336 |
gr.Examples(
|
337 |
fn = inpaint,
|
338 |
inputs = [
|
@@ -480,4 +624,22 @@ with gr.Blocks() as interface:
|
|
480 |
"""
|
481 |
)
|
482 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
483 |
interface.queue().launch()
|
|
|
27 |
pipe = StableDiffusionXLInpaintPipeline.from_pretrained("diffusers/stable-diffusion-xl-1.0-inpainting-0.1", torch_dtype = floatType, variant = variant)
|
28 |
pipe = pipe.to(device)
|
29 |
|
30 |
+
default_local_storage = {
|
31 |
+
"prompt": "",
|
32 |
+
"negative_prompt": "Ugly, malformed, noise, blur, watermark",
|
33 |
+
"num_inference_steps": 25,
|
34 |
+
"guidance_scale": 7,
|
35 |
+
"image_guidance_scale": 1.1,
|
36 |
+
"strength": 0.99,
|
37 |
+
"denoising_steps": 1000,
|
38 |
+
"randomize_seed": True,
|
39 |
+
"seed": random.randint(0, max_64_bit_int),
|
40 |
+
"debug_mode": False
|
41 |
+
}
|
42 |
+
|
43 |
+
def save_preferences_prompt(preferences, value):
|
44 |
+
preferences["prompt"] = value
|
45 |
+
return preferences
|
46 |
+
|
47 |
+
def save_preferences_negative_prompt(preferences, value):
|
48 |
+
preferences["negative_prompt"] = value
|
49 |
+
return preferences
|
50 |
+
|
51 |
+
def save_preferences_num_inference_steps(preferences, value):
|
52 |
+
preferences["num_inference_steps"] = value
|
53 |
+
return preferences
|
54 |
+
|
55 |
+
def save_preferences_guidance_scale(preferences, value):
|
56 |
+
preferences["guidance_scale"] = value
|
57 |
+
return preferences
|
58 |
+
|
59 |
+
def save_preferences_image_guidance_scale(preferences, value):
|
60 |
+
preferences["image_guidance_scale"] = value
|
61 |
+
return preferences
|
62 |
+
|
63 |
+
def save_preferences_strength(preferences, value):
|
64 |
+
preferences["strength"] = value
|
65 |
+
return preferences
|
66 |
+
|
67 |
+
def save_preferences_denoising_steps(preferences, value):
|
68 |
+
preferences["denoising_steps"] = value
|
69 |
+
return preferences
|
70 |
+
|
71 |
+
def save_preferences_randomize_seed(preferences, value):
|
72 |
+
preferences["randomize_seed"] = value
|
73 |
+
return preferences
|
74 |
+
|
75 |
+
def save_preferences_seed(preferences, value):
|
76 |
+
preferences["seed"] = value
|
77 |
+
return preferences
|
78 |
+
|
79 |
+
def save_preferences_debug_mode(preferences, value):
|
80 |
+
preferences["debug_mode"] = value
|
81 |
+
return preferences
|
82 |
+
|
83 |
+
def load_preferences(saved_prefs):
|
84 |
+
saved_prefs = init_preferences(saved_prefs)
|
85 |
+
return [
|
86 |
+
saved_prefs["prompt"],
|
87 |
+
saved_prefs["negative_prompt"],
|
88 |
+
saved_prefs["num_inference_steps"],
|
89 |
+
saved_prefs["guidance_scale"],
|
90 |
+
saved_prefs["image_guidance_scale"],
|
91 |
+
saved_prefs["strength"],
|
92 |
+
saved_prefs["denoising_steps"],
|
93 |
+
saved_prefs["randomize_seed"],
|
94 |
+
saved_prefs["seed"],
|
95 |
+
saved_prefs["debug_mode"]
|
96 |
+
]
|
97 |
+
|
98 |
+
def init_preferences(saved_prefs):
|
99 |
+
if saved_prefs is None:
|
100 |
+
saved_prefs = default_local_storage
|
101 |
+
return saved_prefs
|
102 |
+
|
103 |
def update_seed(is_randomize_seed, seed):
|
104 |
if is_randomize_seed:
|
105 |
return random.randint(0, max_64_bit_int)
|
|
|
314 |
).images[0]
|
315 |
|
316 |
with gr.Blocks() as interface:
|
317 |
+
local_storage = gr.BrowserState(default_local_storage)
|
318 |
gr.HTML(
|
319 |
"""
|
320 |
<h1 style="text-align: center;">Inpaint / Outpaint</h1>
|
|
|
407 |
mask_image
|
408 |
], scroll_to_output = True)
|
409 |
|
410 |
+
prompt.change(fn = save_preferences_prompt, inputs = [
|
411 |
+
local_storage,
|
412 |
+
prompt,
|
413 |
+
], outputs = [
|
414 |
+
local_storage
|
415 |
+
])
|
416 |
+
|
417 |
+
negative_prompt.change(fn = save_preferences_negative_prompt, inputs = [
|
418 |
+
local_storage,
|
419 |
+
negative_prompt,
|
420 |
+
], outputs = [
|
421 |
+
local_storage
|
422 |
+
])
|
423 |
+
|
424 |
+
num_inference_steps.change(fn = save_preferences_num_inference_steps, inputs = [
|
425 |
+
local_storage,
|
426 |
+
num_inference_steps,
|
427 |
+
], outputs = [
|
428 |
+
local_storage
|
429 |
+
])
|
430 |
+
|
431 |
+
guidance_scale.change(fn = save_preferences_guidance_scale, inputs = [
|
432 |
+
local_storage,
|
433 |
+
guidance_scale,
|
434 |
+
], outputs = [
|
435 |
+
local_storage
|
436 |
+
])
|
437 |
+
|
438 |
+
image_guidance_scale.change(fn = save_preferences_image_guidance_scale, inputs = [
|
439 |
+
local_storage,
|
440 |
+
image_guidance_scale,
|
441 |
+
], outputs = [
|
442 |
+
local_storage
|
443 |
+
])
|
444 |
+
|
445 |
+
strength.change(fn = save_preferences_strength, inputs = [
|
446 |
+
local_storage,
|
447 |
+
strength,
|
448 |
+
], outputs = [
|
449 |
+
local_storage
|
450 |
+
])
|
451 |
+
|
452 |
+
denoising_steps.change(fn = save_preferences_denoising_steps, inputs = [
|
453 |
+
local_storage,
|
454 |
+
denoising_steps,
|
455 |
+
], outputs = [
|
456 |
+
local_storage
|
457 |
+
])
|
458 |
+
|
459 |
+
randomize_seed.change(fn = save_preferences_randomize_seed, inputs = [
|
460 |
+
local_storage,
|
461 |
+
randomize_seed,
|
462 |
+
], outputs = [
|
463 |
+
local_storage
|
464 |
+
])
|
465 |
+
|
466 |
+
seed.change(fn = save_preferences_seed, inputs = [
|
467 |
+
local_storage,
|
468 |
+
seed,
|
469 |
+
], outputs = [
|
470 |
+
local_storage
|
471 |
+
])
|
472 |
+
|
473 |
+
debug_mode.change(fn = save_preferences_debug_mode, inputs = [
|
474 |
+
local_storage,
|
475 |
+
debug_mode,
|
476 |
+
], outputs = [
|
477 |
+
local_storage
|
478 |
+
])
|
479 |
+
|
480 |
gr.Examples(
|
481 |
fn = inpaint,
|
482 |
inputs = [
|
|
|
624 |
"""
|
625 |
)
|
626 |
|
627 |
+
# Load saved preferences when the page loads
|
628 |
+
interface.load(
|
629 |
+
fn=load_preferences, inputs = [
|
630 |
+
local_storage
|
631 |
+
], outputs = [
|
632 |
+
prompt,
|
633 |
+
negative_prompt,
|
634 |
+
num_inference_steps,
|
635 |
+
guidance_scale,
|
636 |
+
image_guidance_scale,
|
637 |
+
strength,
|
638 |
+
denoising_steps,
|
639 |
+
randomize_seed,
|
640 |
+
seed,
|
641 |
+
debug_mode
|
642 |
+
]
|
643 |
+
)
|
644 |
+
|
645 |
interface.queue().launch()
|