TheAwakenOne commited on
Commit
eb27870
·
1 Parent(s): 0f2c19b
Files changed (1) hide show
  1. app.py +12 -7
app.py CHANGED
@@ -13,6 +13,8 @@ import copy
13
  import random
14
  import time
15
 
 
 
16
  # Load LoRAs from JSON file
17
  with open('loras.json', 'r') as f:
18
  loras = json.load(f)
@@ -57,6 +59,8 @@ class calculateDuration:
57
  print(f"Elapsed time: {self.elapsed_time:.6f} seconds")
58
 
59
  def update_selection(evt: gr.SelectData, width, height):
 
 
60
  selected_lora = loras[evt.index]
61
  new_placeholder = f"{selected_lora['trigger_word']} {prompt.value}"
62
  lora_repo = selected_lora["repo"]
@@ -74,9 +78,9 @@ def update_selection(evt: gr.SelectData, width, height):
74
  return (
75
  gr.update(value=new_placeholder),
76
  updated_text,
77
- evt.index,
78
  width,
79
  height,
 
80
  )
81
 
82
  @spaces.GPU(duration=70)
@@ -117,11 +121,12 @@ def generate_image_to_image(prompt_mash, image_input_path, image_strength, steps
117
  ).images[0]
118
  return final_image
119
 
120
- def run_lora(prompt, cfg_scale, steps, selected_index, randomize_seed, seed, width, height, lora_scale, progress=gr.Progress(track_tqdm=True)):
121
- if selected_index is None:
 
122
  raise gr.Error("You must select a LoRA before proceeding.")
123
 
124
- selected_lora = loras[selected_index]
125
  lora_path = selected_lora["repo"]
126
  trigger_word = selected_lora["trigger_word"]
127
 
@@ -201,7 +206,7 @@ with gr.Blocks() as demo:
201
  )
202
 
203
  with gr.Row():
204
- generate = gr.Button("Generate", variant="primary")
205
  cancel = gr.Button("Cancel")
206
 
207
  with gr.Row():
@@ -227,9 +232,9 @@ with gr.Blocks() as demo:
227
  progress_bar = gr.Markdown(visible=False)
228
 
229
  # Event handlers
230
- gallery.select(update_selection, [width, height], [prompt, selected_lora, gr.State(), width, height])
231
  randomize_seed.change(lambda x: gr.update(visible=not x), randomize_seed, seed_input)
232
- generate_event = generate.click(run_lora, inputs=[prompt, cfg_scale, steps, gr.State(), randomize_seed, seed_input, width, height, lora_scale], outputs=[result, seed_output, progress_bar])
233
  cancel.click(lambda: None, None, None, cancels=[generate_event])
234
 
235
  demo.queue().launch()
 
13
  import random
14
  import time
15
 
16
+ selected_lora_index = None
17
+
18
  # Load LoRAs from JSON file
19
  with open('loras.json', 'r') as f:
20
  loras = json.load(f)
 
59
  print(f"Elapsed time: {self.elapsed_time:.6f} seconds")
60
 
61
  def update_selection(evt: gr.SelectData, width, height):
62
+ global selected_lora_index
63
+ selected_lora_index = evt.index
64
  selected_lora = loras[evt.index]
65
  new_placeholder = f"{selected_lora['trigger_word']} {prompt.value}"
66
  lora_repo = selected_lora["repo"]
 
78
  return (
79
  gr.update(value=new_placeholder),
80
  updated_text,
 
81
  width,
82
  height,
83
+ gr.update(interactive=True) # Enable the Generate button
84
  )
85
 
86
  @spaces.GPU(duration=70)
 
121
  ).images[0]
122
  return final_image
123
 
124
+ def run_lora(prompt, cfg_scale, steps, randomize_seed, seed, width, height, lora_scale, progress=gr.Progress(track_tqdm=True)):
125
+ global selected_lora_index
126
+ if selected_lora_index is None:
127
  raise gr.Error("You must select a LoRA before proceeding.")
128
 
129
+ selected_lora = loras[selected_lora_index]
130
  lora_path = selected_lora["repo"]
131
  trigger_word = selected_lora["trigger_word"]
132
 
 
206
  )
207
 
208
  with gr.Row():
209
+ generate = gr.Button("Generate", variant="primary", interactive=False)
210
  cancel = gr.Button("Cancel")
211
 
212
  with gr.Row():
 
232
  progress_bar = gr.Markdown(visible=False)
233
 
234
  # Event handlers
235
+ gallery.select(update_selection, [width, height], [prompt, selected_lora, width, height, generate])
236
  randomize_seed.change(lambda x: gr.update(visible=not x), randomize_seed, seed_input)
237
+ generate_event = generate.click(run_lora, inputs=[prompt, cfg_scale, steps, randomize_seed, seed_input, width, height, lora_scale], outputs=[result, seed_output, progress_bar])
238
  cancel.click(lambda: None, None, None, cancels=[generate_event])
239
 
240
  demo.queue().launch()