throaway2854 commited on
Commit
ae270b9
·
verified ·
1 Parent(s): 79ea3d6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -19
app.py CHANGED
@@ -100,6 +100,9 @@ with gr.Blocks() as demo:
100
  dataset_html = gr.HTML()
101
  message_box = gr.Textbox(interactive=False, label="Message")
102
 
 
 
 
103
  with gr.Tab("Create / Upload Dataset"):
104
  with gr.Row():
105
  with gr.Column():
@@ -153,7 +156,7 @@ with gr.Blocks() as demo:
153
  dataset_selector.change(
154
  select_dataset,
155
  inputs=[dataset_selector, datasets],
156
- outputs=[current_dataset_name, dataset_html, gr.Variable(), message_box]
157
  )
158
 
159
  with gr.Tab("Add Entry"):
@@ -183,18 +186,20 @@ with gr.Blocks() as demo:
183
  add_button.click(
184
  add_entry,
185
  inputs=[image_input, prompt_input, current_dataset_name, datasets],
186
- outputs=[datasets, dataset_html, gr.Variable(), message_box]
187
  )
188
 
189
  with gr.Tab("Edit / Delete Entry"):
190
- # Entry selector
191
- entry_selector = gr.Dropdown(label="Select Entry to Edit/Delete")
192
- selected_image = gr.Image(label="Selected Image", interactive=False)
193
- selected_prompt = gr.Textbox(label="Current Prompt", interactive=False)
194
- new_prompt_input = gr.Textbox(label="New Prompt (for Edit)")
195
- with gr.Row():
196
- edit_button = gr.Button("Edit Entry")
197
- delete_button = gr.Button("Delete Entry")
 
 
198
 
199
  def update_selected_entry(entry_option, current_dataset_name, datasets):
200
  if not current_dataset_name or not entry_option:
@@ -203,7 +208,11 @@ with gr.Blocks() as demo:
203
  entry = datasets[current_dataset_name][index]
204
  image_data = entry['image']
205
  prompt = entry['prompt']
206
- return gr.update(value=image_data), gr.update(value=prompt)
 
 
 
 
207
 
208
  entry_selector.change(
209
  update_selected_entry,
@@ -213,40 +222,40 @@ with gr.Blocks() as demo:
213
 
214
  def edit_entry(entry_option, new_prompt, current_dataset_name, datasets):
215
  if not current_dataset_name:
216
- return datasets, gr.update(), gr.update(), "No dataset selected."
217
  if not entry_option or not new_prompt.strip():
218
- return datasets, gr.update(), gr.update(), "Please select an entry and provide a new prompt."
219
  index = int(entry_option.split(":")[0])
220
  datasets[current_dataset_name][index]['prompt'] = new_prompt
221
  dataset = datasets[current_dataset_name]
222
  html_content = display_dataset_html(dataset)
223
  # Update entry_selector options
224
  entry_options = [f"{idx}: {entry['prompt'][:30]}" for idx, entry in enumerate(dataset)]
225
- return datasets, gr.update(value=html_content), gr.update(choices=entry_options), f"Entry {index} updated."
226
 
227
  edit_button.click(
228
  edit_entry,
229
  inputs=[entry_selector, new_prompt_input, current_dataset_name, datasets],
230
- outputs=[datasets, dataset_html, entry_selector, message_box]
231
  )
232
 
233
  def delete_entry(entry_option, current_dataset_name, datasets):
234
  if not current_dataset_name:
235
- return datasets, gr.update(), gr.update(), "No dataset selected."
236
  if not entry_option:
237
- return datasets, gr.update(), gr.update(), "Please select an entry to delete."
238
  index = int(entry_option.split(":")[0])
239
  del datasets[current_dataset_name][index]
240
  dataset = datasets[current_dataset_name]
241
  html_content = display_dataset_html(dataset)
242
  # Update entry_selector options
243
  entry_options = [f"{idx}: {entry['prompt'][:30]}" for idx, entry in enumerate(dataset)]
244
- return datasets, gr.update(value=html_content), gr.update(choices=entry_options), f"Entry {index} deleted."
245
 
246
  delete_button.click(
247
  delete_entry,
248
  inputs=[entry_selector, current_dataset_name, datasets],
249
- outputs=[datasets, dataset_html, entry_selector, message_box]
250
  )
251
 
252
  with gr.Tab("Download Dataset"):
 
100
  dataset_html = gr.HTML()
101
  message_box = gr.Textbox(interactive=False, label="Message")
102
 
103
+ # Entry selector initialized here
104
+ entry_selector = gr.Dropdown(label="Select Entry to Edit/Delete")
105
+
106
  with gr.Tab("Create / Upload Dataset"):
107
  with gr.Row():
108
  with gr.Column():
 
156
  dataset_selector.change(
157
  select_dataset,
158
  inputs=[dataset_selector, datasets],
159
+ outputs=[current_dataset_name, dataset_html, entry_selector, message_box]
160
  )
161
 
162
  with gr.Tab("Add Entry"):
 
186
  add_button.click(
187
  add_entry,
188
  inputs=[image_input, prompt_input, current_dataset_name, datasets],
189
+ outputs=[datasets, dataset_html, entry_selector, message_box]
190
  )
191
 
192
  with gr.Tab("Edit / Delete Entry"):
193
+ # Components moved inside the tab
194
+ with gr.Column():
195
+ # Entry selector
196
+ entry_selector = gr.Dropdown(label="Select Entry to Edit/Delete")
197
+ selected_image = gr.Image(label="Selected Image", interactive=False)
198
+ selected_prompt = gr.Textbox(label="Current Prompt", interactive=False)
199
+ new_prompt_input = gr.Textbox(label="New Prompt (for Edit)")
200
+ with gr.Row():
201
+ edit_button = gr.Button("Edit Entry")
202
+ delete_button = gr.Button("Delete Entry")
203
 
204
  def update_selected_entry(entry_option, current_dataset_name, datasets):
205
  if not current_dataset_name or not entry_option:
 
208
  entry = datasets[current_dataset_name][index]
209
  image_data = entry['image']
210
  prompt = entry['prompt']
211
+ # Decode base64 image data to numpy array
212
+ image_bytes = base64.b64decode(image_data.split(",")[1])
213
+ image = Image.open(BytesIO(image_bytes))
214
+ image_array = np.array(image)
215
+ return gr.update(value=image_array), gr.update(value=prompt)
216
 
217
  entry_selector.change(
218
  update_selected_entry,
 
222
 
223
  def edit_entry(entry_option, new_prompt, current_dataset_name, datasets):
224
  if not current_dataset_name:
225
+ return datasets, gr.update(), gr.update(), gr.update(), "No dataset selected."
226
  if not entry_option or not new_prompt.strip():
227
+ return datasets, gr.update(), gr.update(), gr.update(), "Please select an entry and provide a new prompt."
228
  index = int(entry_option.split(":")[0])
229
  datasets[current_dataset_name][index]['prompt'] = new_prompt
230
  dataset = datasets[current_dataset_name]
231
  html_content = display_dataset_html(dataset)
232
  # Update entry_selector options
233
  entry_options = [f"{idx}: {entry['prompt'][:30]}" for idx, entry in enumerate(dataset)]
234
+ return datasets, gr.update(value=html_content), gr.update(choices=entry_options), gr.update(value=""), f"Entry {index} updated."
235
 
236
  edit_button.click(
237
  edit_entry,
238
  inputs=[entry_selector, new_prompt_input, current_dataset_name, datasets],
239
+ outputs=[datasets, dataset_html, entry_selector, new_prompt_input, message_box]
240
  )
241
 
242
  def delete_entry(entry_option, current_dataset_name, datasets):
243
  if not current_dataset_name:
244
+ return datasets, gr.update(), gr.update(), gr.update(), gr.update(), "No dataset selected."
245
  if not entry_option:
246
+ return datasets, gr.update(), gr.update(), gr.update(), gr.update(), "Please select an entry to delete."
247
  index = int(entry_option.split(":")[0])
248
  del datasets[current_dataset_name][index]
249
  dataset = datasets[current_dataset_name]
250
  html_content = display_dataset_html(dataset)
251
  # Update entry_selector options
252
  entry_options = [f"{idx}: {entry['prompt'][:30]}" for idx, entry in enumerate(dataset)]
253
+ return datasets, gr.update(value=html_content), gr.update(choices=entry_options), gr.update(value=None), gr.update(value=""), f"Entry {index} deleted."
254
 
255
  delete_button.click(
256
  delete_entry,
257
  inputs=[entry_selector, current_dataset_name, datasets],
258
+ outputs=[datasets, dataset_html, entry_selector, selected_image, selected_prompt, message_box]
259
  )
260
 
261
  with gr.Tab("Download Dataset"):