Tanut commited on
Commit
dcf7ed7
·
1 Parent(s): afe86f3
Files changed (1) hide show
  1. app.py +13 -9
app.py CHANGED
@@ -150,17 +150,21 @@ def make_qr(url="https://example.com", size=768, border=12, back_color="#FFFFFF"
150
  return img
151
 
152
  def prep_qr_upload_image(qr_upload: Image.Image, size: int = 768, blur_radius: float = 0.0) -> Image.Image:
153
- # Ensure it's grayscale or binary-like
154
  im = qr_upload.convert("L")
155
-
156
- # Resize to target size, keeping sharp block edges
 
 
 
 
157
  im = im.resize((size, size), Image.NEAREST)
158
-
159
- # Convert back to RGB (ControlNet likes 3-channel)
160
  im = im.convert("RGB")
161
-
162
- # Optional Gaussian blur for softer edges
163
- if blur_radius and blur_radius > 0:
164
  im = im.filter(ImageFilter.GaussianBlur(radius=float(blur_radius)))
165
 
166
  return im
@@ -217,7 +221,7 @@ def get_qr_cn():
217
  global _CN_QR
218
  if _CN_QR is None:
219
  _CN_QR = ControlNetModel.from_pretrained(
220
- CN_QRMON, torch_dtype=DTYPE, use_safetensors=True, token=HF_TOKEN
221
  )
222
  return _CN_QR
223
 
 
150
  return img
151
 
152
  def prep_qr_upload_image(qr_upload: Image.Image, size: int = 768, blur_radius: float = 0.0) -> Image.Image:
153
+ # Step 1: grayscale
154
  im = qr_upload.convert("L")
155
+
156
+ # Step 2: binarize (make it black & white only)
157
+ threshold = 180
158
+ im = im.point(lambda p: 255 if p > threshold else 0, mode="1")
159
+
160
+ # Step 3: resize (sharp edges preserved)
161
  im = im.resize((size, size), Image.NEAREST)
162
+
163
+ # Step 4: back to RGB
164
  im = im.convert("RGB")
165
+
166
+ # Step 5: optional blur (soften edges if desired)
167
+ if blur_radius > 0:
168
  im = im.filter(ImageFilter.GaussianBlur(radius=float(blur_radius)))
169
 
170
  return im
 
221
  global _CN_QR
222
  if _CN_QR is None:
223
  _CN_QR = ControlNetModel.from_pretrained(
224
+ CN_QRMON, torch_dtype=DTYPE, use_safetensors=False, token=HF_TOKEN
225
  )
226
  return _CN_QR
227