Roman commited on
Commit
2eb250a
1 Parent(s): da036da

chore: remove all size displays

Browse files
Files changed (1) hide show
  1. app.py +7 -29
app.py CHANGED
@@ -163,10 +163,6 @@ def keygen(filter_name):
163
  # execution
164
  evaluation_key = client.get_serialized_evaluation_keys()
165
 
166
- # Compute the private key's size in Kilobytes
167
- private_key_path = next(client.key_dir.iterdir()) / "0_0/secretKey_big"
168
- private_key_size = private_key_path.stat().st_size / 1000
169
-
170
  # Save evaluation_key as bytes in a file as it is too large to pass through regular Gradio
171
  # buttons (see https://github.com/gradio-app/gradio/issues/1877)
172
  evaluation_key_path = get_client_file_path("evaluation_key", user_id, filter_name)
@@ -174,7 +170,7 @@ def keygen(filter_name):
174
  with evaluation_key_path.open("wb") as evaluation_key_file:
175
  evaluation_key_file.write(evaluation_key)
176
 
177
- return (user_id, True, private_key_size)
178
 
179
 
180
  def encrypt(user_id, input_image, filter_name):
@@ -202,9 +198,6 @@ def encrypt(user_id, input_image, filter_name):
202
  # Pre-process, encrypt and serialize the image
203
  encrypted_image = client.encrypt_serialize(input_image)
204
 
205
- # Compute the input's size in Megabytes
206
- encrypted_input_size = len(encrypted_image) / 1000000
207
-
208
  # Save encrypted_image to bytes in a file, since too large to pass through regular Gradio
209
  # buttons, https://github.com/gradio-app/gradio/issues/1877
210
  encrypted_image_path = get_client_file_path("encrypted_image", user_id, filter_name)
@@ -215,7 +208,7 @@ def encrypt(user_id, input_image, filter_name):
215
  # Create a truncated version of the encrypted image for display
216
  encrypted_image_short = shorten_bytes_object(encrypted_image)
217
 
218
- return (input_image, encrypted_image_short, encrypted_input_size)
219
 
220
 
221
  def send_input(user_id, filter_name):
@@ -306,9 +299,6 @@ def get_output(user_id, filter_name):
306
  if response.ok:
307
  encrypted_output = response.content
308
 
309
- # Compute the output's size in Megabytes
310
- encrypted_output_size = len(encrypted_output) / 1000000
311
-
312
  # Save the encrypted output to bytes in a file as it is too large to pass through regular
313
  # Gradio buttons (see https://github.com/gradio-app/gradio/issues/1877)
314
  encrypted_output_path = get_client_file_path("encrypted_output", user_id, filter_name)
@@ -319,7 +309,7 @@ def get_output(user_id, filter_name):
319
  # Decrypt the image using a different (wrong) key for display
320
  output_image_representation = decrypt_output_with_wrong_key(encrypted_output, filter_name)
321
 
322
- return output_image_representation, encrypted_output_size
323
  else:
324
  raise gr.Error("Please wait for the FHE execution to be completed.")
325
 
@@ -398,7 +388,7 @@ with demo:
398
  )
399
  with gr.Row():
400
  input_image = gr.Image(
401
- label="Upload an image here.", shape=INPUT_SHAPE, source="upload", interactive=True
402
  )
403
 
404
  examples = gr.Examples(
@@ -424,10 +414,6 @@ with demo:
424
  with gr.Row():
425
  keygen_checkbox = gr.Checkbox(label="Private key generated:", interactive=False)
426
 
427
- private_key_size = gr.Number(
428
- label="Private key size (in kB):", value=0, precision=1, interactive=False
429
- )
430
-
431
  user_id = gr.Textbox(label="", max_lines=2, interactive=False, visible=False)
432
 
433
  gr.Markdown("### Step 4: Encrypt the image using FHE.")
@@ -438,10 +424,6 @@ with demo:
438
  label="Encrypted input representation:", max_lines=2, interactive=False
439
  )
440
 
441
- encrypted_input_size = gr.Number(
442
- label="Encrypted input size (in MB):", value=0, precision=1, interactive=False
443
- )
444
-
445
  gr.Markdown("## Server side")
446
  gr.Markdown(
447
  "The encrypted value is received by the server. The server can then compute the filter "
@@ -473,10 +455,6 @@ with demo:
473
  )
474
  encrypted_output_representation.style(height=256, width=256)
475
 
476
- encrypted_output_size = gr.Number(
477
- label="Encrypted output size (in MB):", value=0, precision=1, interactive=False
478
- )
479
-
480
  gr.Markdown("## Client side")
481
  gr.Markdown(
482
  "The encrypted output is sent back to the client, who can finally decrypt it with the "
@@ -508,14 +486,14 @@ with demo:
508
  keygen_button.click(
509
  keygen,
510
  inputs=[filter_name],
511
- outputs=[user_id, keygen_checkbox, private_key_size],
512
  )
513
 
514
  # Button to encrypt inputs on the client side
515
  encrypt_button.click(
516
  encrypt,
517
  inputs=[user_id, input_image, filter_name],
518
- outputs=[original_image, encrypted_input, encrypted_input_size],
519
  )
520
 
521
  # Button to send the encodings to the server using post method
@@ -530,7 +508,7 @@ with demo:
530
  get_output_button.click(
531
  get_output,
532
  inputs=[user_id, filter_name],
533
- outputs=[encrypted_output_representation, encrypted_output_size]
534
  )
535
 
536
  # Button to decrypt the output on the client side
 
163
  # execution
164
  evaluation_key = client.get_serialized_evaluation_keys()
165
 
 
 
 
 
166
  # Save evaluation_key as bytes in a file as it is too large to pass through regular Gradio
167
  # buttons (see https://github.com/gradio-app/gradio/issues/1877)
168
  evaluation_key_path = get_client_file_path("evaluation_key", user_id, filter_name)
 
170
  with evaluation_key_path.open("wb") as evaluation_key_file:
171
  evaluation_key_file.write(evaluation_key)
172
 
173
+ return (user_id, True)
174
 
175
 
176
  def encrypt(user_id, input_image, filter_name):
 
198
  # Pre-process, encrypt and serialize the image
199
  encrypted_image = client.encrypt_serialize(input_image)
200
 
 
 
 
201
  # Save encrypted_image to bytes in a file, since too large to pass through regular Gradio
202
  # buttons, https://github.com/gradio-app/gradio/issues/1877
203
  encrypted_image_path = get_client_file_path("encrypted_image", user_id, filter_name)
 
208
  # Create a truncated version of the encrypted image for display
209
  encrypted_image_short = shorten_bytes_object(encrypted_image)
210
 
211
+ return (input_image, encrypted_image_short)
212
 
213
 
214
  def send_input(user_id, filter_name):
 
299
  if response.ok:
300
  encrypted_output = response.content
301
 
 
 
 
302
  # Save the encrypted output to bytes in a file as it is too large to pass through regular
303
  # Gradio buttons (see https://github.com/gradio-app/gradio/issues/1877)
304
  encrypted_output_path = get_client_file_path("encrypted_output", user_id, filter_name)
 
309
  # Decrypt the image using a different (wrong) key for display
310
  output_image_representation = decrypt_output_with_wrong_key(encrypted_output, filter_name)
311
 
312
+ return output_image_representation
313
  else:
314
  raise gr.Error("Please wait for the FHE execution to be completed.")
315
 
 
388
  )
389
  with gr.Row():
390
  input_image = gr.Image(
391
+ value=None, label="Upload an image here.", shape=INPUT_SHAPE, source="upload", interactive=True,
392
  )
393
 
394
  examples = gr.Examples(
 
414
  with gr.Row():
415
  keygen_checkbox = gr.Checkbox(label="Private key generated:", interactive=False)
416
 
 
 
 
 
417
  user_id = gr.Textbox(label="", max_lines=2, interactive=False, visible=False)
418
 
419
  gr.Markdown("### Step 4: Encrypt the image using FHE.")
 
424
  label="Encrypted input representation:", max_lines=2, interactive=False
425
  )
426
 
 
 
 
 
427
  gr.Markdown("## Server side")
428
  gr.Markdown(
429
  "The encrypted value is received by the server. The server can then compute the filter "
 
455
  )
456
  encrypted_output_representation.style(height=256, width=256)
457
 
 
 
 
 
458
  gr.Markdown("## Client side")
459
  gr.Markdown(
460
  "The encrypted output is sent back to the client, who can finally decrypt it with the "
 
486
  keygen_button.click(
487
  keygen,
488
  inputs=[filter_name],
489
+ outputs=[user_id, keygen_checkbox],
490
  )
491
 
492
  # Button to encrypt inputs on the client side
493
  encrypt_button.click(
494
  encrypt,
495
  inputs=[user_id, input_image, filter_name],
496
+ outputs=[original_image, encrypted_input],
497
  )
498
 
499
  # Button to send the encodings to the server using post method
 
508
  get_output_button.click(
509
  get_output,
510
  inputs=[user_id, filter_name],
511
+ outputs=[encrypted_output_representation]
512
  )
513
 
514
  # Button to decrypt the output on the client side