Fabrice-TIERCELIN commited on
Commit
1a92f6a
·
verified ·
1 Parent(s): 3e4dba7

Save options

Browse files
Files changed (1) hide show
  1. app.py +162 -0
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()