Tyler Ng commited on
Commit
b125588
Β·
verified Β·
1 Parent(s): 1b79b5b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -0
app.py CHANGED
@@ -25,6 +25,9 @@ from transparent_background import Remover
25
  # rembg (U2Net + IS-Net via ONNX)
26
  from rembg import new_session, remove as rembg_remove
27
 
 
 
 
28
 
29
  # ----------------------------
30
  # Utilities
@@ -101,6 +104,7 @@ class Timing:
101
  class ModelManager:
102
  def __init__(self):
103
  self._inspy: Optional[Remover] = None
 
104
  self._torch_models: Dict[str, torch.nn.Module] = {}
105
  self._torch_model_on_gpu: Optional[str] = None
106
  self._rembg_sessions: Dict[str, object] = {}
@@ -126,6 +130,11 @@ class ModelManager:
126
  self._inspy = Remover(jit=False)
127
  return self._inspy
128
 
 
 
 
 
 
129
  def _offload_torch_models_from_gpu(self, keep_name: str):
130
  if get_device() != "cuda":
131
  return
@@ -264,6 +273,11 @@ class ModelManager:
264
  out = rembg_remove(img_rgb, session=sess)
265
  out = ensure_rgba(out)
266
 
 
 
 
 
 
267
  else:
268
  raise ValueError(f"Unknown model: {model_name}")
269
 
@@ -294,6 +308,7 @@ MODEL_CHOICES = [
294
  "U2Net",
295
  "BRIA RMBG 2.0",
296
  "IS-Net",
 
297
  ]
298
 
299
 
@@ -393,6 +408,7 @@ Benchmarked models:
393
  3. **U2Net** β€” via rembg/ONNX
394
  4. **BRIA RMBG 2.0** β€” briaai/RMBG-2.0 (requires license acceptance)
395
  5. **IS-Net** β€” isnet-general-use via rembg
 
396
 
397
  **Notes**
398
  - Output is true transparent PNG (RGBA)
 
25
  # rembg (U2Net + IS-Net via ONNX)
26
  from rembg import new_session, remove as rembg_remove
27
 
28
+ # withoutBG (4-stage ONNX pipeline)
29
+ from withoutbg import WithoutBG
30
+
31
 
32
  # ----------------------------
33
  # Utilities
 
104
  class ModelManager:
105
  def __init__(self):
106
  self._inspy: Optional[Remover] = None
107
+ self._withoutbg: Optional[object] = None
108
  self._torch_models: Dict[str, torch.nn.Module] = {}
109
  self._torch_model_on_gpu: Optional[str] = None
110
  self._rembg_sessions: Dict[str, object] = {}
 
130
  self._inspy = Remover(jit=False)
131
  return self._inspy
132
 
133
+ def _load_withoutbg(self):
134
+ if self._withoutbg is None:
135
+ self._withoutbg = WithoutBG.opensource()
136
+ return self._withoutbg
137
+
138
  def _offload_torch_models_from_gpu(self, keep_name: str):
139
  if get_device() != "cuda":
140
  return
 
273
  out = rembg_remove(img_rgb, session=sess)
274
  out = ensure_rgba(out)
275
 
276
+ elif model_name == "withoutBG":
277
+ model = self._load_withoutbg()
278
+ out = model.remove_background(img_rgb)
279
+ out = ensure_rgba(out)
280
+
281
  else:
282
  raise ValueError(f"Unknown model: {model_name}")
283
 
 
308
  "U2Net",
309
  "BRIA RMBG 2.0",
310
  "IS-Net",
311
+ "withoutBG",
312
  ]
313
 
314
 
 
408
  3. **U2Net** β€” via rembg/ONNX
409
  4. **BRIA RMBG 2.0** β€” briaai/RMBG-2.0 (requires license acceptance)
410
  5. **IS-Net** β€” isnet-general-use via rembg
411
+ 6. **withoutBG** β€” 4-stage ONNX pipeline (Depth β†’ ISNet β†’ Matting β†’ Refiner)
412
 
413
  **Notes**
414
  - Output is true transparent PNG (RGBA)