Severian commited on
Commit
bb72424
·
verified ·
1 Parent(s): dd842eb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -3
app.py CHANGED
@@ -9,6 +9,7 @@ import io
9
  import os
10
  from PIL import Image
11
  import spaces
 
12
 
13
  from diffusers import (
14
  StableDiffusionPipeline,
@@ -30,12 +31,14 @@ qrcode_generator = qrcode.QRCode(
30
  )
31
 
32
  controlnet = ControlNetModel.from_pretrained(
33
- "DionTimmer/controlnet_qrcode-control_v1p_sd15", torch_dtype=torch.float16
 
 
34
  ).to("cuda")
35
 
36
  pipe = StableDiffusionControlNetImg2ImgPipeline.from_pretrained(
37
- "digiplay/GhostMixV1.2VAE",
38
- #"benjamin-paine/stable-diffusion-v1-5",
39
  controlnet = controlnet,
40
  torch_dtype = torch.float16,
41
  safety_checker = None,
@@ -64,6 +67,26 @@ SAMPLER_MAP = {
64
  "DEIS": lambda config: DEISMultistepScheduler.from_config(config),
65
  }
66
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  @spaces.GPU()
68
  def inference(
69
  qr_code_content: str,
@@ -313,6 +336,24 @@ with gr.Blocks(theme=gr.themes.Monochrome()) as blocks:
313
  Enjoy the process of bringing your unique vision to life!
314
  """
315
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
316
  run_btn.click(
317
  inference,
318
  inputs=[
 
9
  import os
10
  from PIL import Image
11
  import spaces
12
+ import numpy as np
13
 
14
  from diffusers import (
15
  StableDiffusionPipeline,
 
31
  )
32
 
33
  controlnet = ControlNetModel.from_pretrained(
34
+ "monster-labs/control_v1p_sd15_qrcode_monster",
35
+ #"DionTimmer/controlnet_qrcode-control_v1p_sd15",
36
+ torch_dtype=torch.float16
37
  ).to("cuda")
38
 
39
  pipe = StableDiffusionControlNetImg2ImgPipeline.from_pretrained(
40
+ #"digiplay/GhostMixV1.2VAE",
41
+ "benjamin-paine/stable-diffusion-v1-5",
42
  controlnet = controlnet,
43
  torch_dtype = torch.float16,
44
  safety_checker = None,
 
67
  "DEIS": lambda config: DEISMultistepScheduler.from_config(config),
68
  }
69
 
70
+ def scan_qr_code(image):
71
+ # Convert gradio image to PIL Image if necessary
72
+ if isinstance(image, np.ndarray):
73
+ image = Image.fromarray(image)
74
+
75
+ # Convert to grayscale
76
+ image = image.convert('L')
77
+
78
+ # Increase contrast
79
+ image = Image.eval(image, lambda x: 255 if x > 128 else 0)
80
+
81
+ # Try to decode the QR code
82
+ try:
83
+ qr = qrcode.QRCode()
84
+ qr.add_data('')
85
+ qr.decode(image)
86
+ return qr.data.decode('utf-8')
87
+ except Exception as e:
88
+ return None
89
+
90
  @spaces.GPU()
91
  def inference(
92
  qr_code_content: str,
 
336
  Enjoy the process of bringing your unique vision to life!
337
  """
338
  )
339
+
340
+ def scan_and_display(image):
341
+ if image is None:
342
+ return "No image to scan"
343
+
344
+ scanned_text = scan_qr_code(image)
345
+ if scanned_text:
346
+ return f"Scanned successfully: {scanned_text}"
347
+ else:
348
+ return "Failed to scan QR code. Try adjusting the settings for better visibility."
349
+
350
+ scan_button.click(
351
+ scan_and_display,
352
+ inputs=[result_image],
353
+ outputs=[scan_result]
354
+ )
355
+
356
+
357
  run_btn.click(
358
  inference,
359
  inputs=[