MogensR commited on
Commit
86debcc
·
1 Parent(s): 64cc2d5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -5
app.py CHANGED
@@ -274,13 +274,51 @@ def _load_sam2(self, progress_callback: Optional[Callable]) -> Any:
274
  raise
275
 
276
  def _load_matanyone(self, progress_callback: Optional[Callable]) -> Any:
277
- """Load MatAnyone processor with validation"""
278
  if progress_callback:
279
  progress_callback(0.6, "Loading MatAnyone...")
280
 
281
  try:
282
- from matanyone import InferenceCore
283
- processor = InferenceCore("PeiqingYang/MatAnyone")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
284
 
285
  if progress_callback:
286
  progress_callback(0.9, "MatAnyone loaded successfully")
@@ -288,8 +326,8 @@ def _load_matanyone(self, progress_callback: Optional[Callable]) -> Any:
288
  return processor
289
 
290
  except Exception as e:
291
- logger.warning(f"MatAnyone loading failed: {e}")
292
- # Return None to use fallback refinement
293
  return None
294
 
295
  def process_video(
 
274
  raise
275
 
276
  def _load_matanyone(self, progress_callback: Optional[Callable]) -> Any:
277
+ """Load MatAnyone processor with full dependency support"""
278
  if progress_callback:
279
  progress_callback(0.6, "Loading MatAnyone...")
280
 
281
  try:
282
+ # Try different import paths for MatAnyone
283
+ try:
284
+ from matanyone import InferenceCore
285
+ processor = InferenceCore("PeiqingYang/MatAnyone")
286
+ logger.info("MatAnyone loaded via InferenceCore")
287
+ except ImportError:
288
+ try:
289
+ from matanyone.inference import MatAnyoneInference
290
+ processor = MatAnyoneInference("PeiqingYang/MatAnyone")
291
+ logger.info("MatAnyone loaded via MatAnyoneInference")
292
+ except ImportError:
293
+ try:
294
+ import matanyone
295
+ processor = matanyone.load_model("PeiqingYang/MatAnyone")
296
+ logger.info("MatAnyone loaded via direct import")
297
+ except ImportError as e:
298
+ logger.error(f"All MatAnyone import methods failed: {e}")
299
+ return None
300
+
301
+ # Test MatAnyone with dummy data
302
+ test_image = np.zeros((256, 256, 3), dtype=np.uint8)
303
+ test_mask = np.zeros((256, 256), dtype=np.uint8)
304
+ test_mask[64:192, 64:192] = 255
305
+
306
+ try:
307
+ if hasattr(processor, 'infer'):
308
+ test_result = processor.infer(test_image, test_mask)
309
+ elif hasattr(processor, 'process'):
310
+ test_result = processor.process(test_image, test_mask)
311
+ elif callable(processor):
312
+ test_result = processor(test_image, test_mask)
313
+ else:
314
+ logger.warning("MatAnyone processor has unknown interface")
315
+ return processor # Return anyway, let utilities handle it
316
+
317
+ logger.info("MatAnyone test successful")
318
+
319
+ except Exception as test_error:
320
+ logger.warning(f"MatAnyone test failed: {test_error}")
321
+ # Return processor anyway, might work in actual use
322
 
323
  if progress_callback:
324
  progress_callback(0.9, "MatAnyone loaded successfully")
 
326
  return processor
327
 
328
  except Exception as e:
329
+ logger.error(f"MatAnyone loading failed: {e}")
330
+ # Return None to use enhanced OpenCV fallback
331
  return None
332
 
333
  def process_video(