yonigozlan HF Staff commited on
Commit
1568073
·
1 Parent(s): af1cc2b

deepcopy model and processor

Browse files
Files changed (1) hide show
  1. app.py +10 -21
app.py CHANGED
@@ -509,11 +509,10 @@ def on_image_click(
509
  @spaces.GPU()
510
  def propagate_masks(GLOBAL_STATE: gr.State):
511
  if GLOBAL_STATE is None or GLOBAL_STATE.inference_session is None:
512
- # yield "Load a video first.", gr.update()
513
- return GLOBAL_STATE, "Load a video first.", gr.update()
514
 
515
- processor = GLOBAL_STATE.processor
516
- model = GLOBAL_STATE.model
517
  inference_session = deepcopy(GLOBAL_STATE.inference_session)
518
  # set inference device to cuda to use zero gpu
519
  inference_session.inference_device = "cuda"
@@ -524,7 +523,7 @@ def propagate_masks(GLOBAL_STATE: gr.State):
524
  processed = 0
525
 
526
  # Initial status; no slider change yet
527
- # yield f"Propagating masks: {processed}/{total}", gr.update()
528
 
529
  last_frame_idx = 0
530
  with torch.inference_mode():
@@ -547,25 +546,15 @@ def propagate_masks(GLOBAL_STATE: gr.State):
547
 
548
  processed += 1
549
  # Every 15th frame (or last), move slider to current frame to update preview via slider binding
550
- # if processed % 15 == 0 or processed == total:
551
- # yield f"Propagating masks: {processed}/{total}", gr.update(value=frame_idx)
552
- # else:
553
- # yield f"Propagating masks: {processed}/{total}", gr.update()
554
-
555
- model.to("cpu")
556
- inference_session.inference_device = "cpu"
557
- inference_session.cache.inference_device = "cpu"
558
- gc.collect()
559
- torch.cuda.empty_cache()
560
  text = f"Propagated masks across {processed} frames for {len(inference_session.obj_ids)} objects."
561
 
562
  # Final status; ensure slider points to last processed frame
563
- # yield (
564
- # f"Propagated masks across {processed} frames for {len(inference_session.obj_ids)} objects.",
565
- # gr.update(value=last_frame_idx),
566
- # )
567
- print("global state", GLOBAL_STATE)
568
- return GLOBAL_STATE, text, gr.update(value=last_frame_idx)
569
 
570
 
571
  def reset_session(GLOBAL_STATE: gr.State) -> tuple[AppState, Image.Image, int, int, str]:
 
509
  @spaces.GPU()
510
  def propagate_masks(GLOBAL_STATE: gr.State):
511
  if GLOBAL_STATE is None or GLOBAL_STATE.inference_session is None:
512
+ yield GLOBAL_STATE, "Load a video first.", gr.update()
 
513
 
514
+ processor = deepcopy(GLOBAL_STATE.processor)
515
+ model = deepcopy(GLOBAL_STATE.model)
516
  inference_session = deepcopy(GLOBAL_STATE.inference_session)
517
  # set inference device to cuda to use zero gpu
518
  inference_session.inference_device = "cuda"
 
523
  processed = 0
524
 
525
  # Initial status; no slider change yet
526
+ yield GLOBAL_STATE, f"Propagating masks: {processed}/{total}", gr.update()
527
 
528
  last_frame_idx = 0
529
  with torch.inference_mode():
 
546
 
547
  processed += 1
548
  # Every 15th frame (or last), move slider to current frame to update preview via slider binding
549
+ if processed % 15 == 0 or processed == total:
550
+ yield GLOBAL_STATE, f"Propagating masks: {processed}/{total}", gr.update(value=frame_idx)
551
+ else:
552
+ yield GLOBAL_STATE, f"Propagating masks: {processed}/{total}", gr.update()
553
+
 
 
 
 
 
554
  text = f"Propagated masks across {processed} frames for {len(inference_session.obj_ids)} objects."
555
 
556
  # Final status; ensure slider points to last processed frame
557
+ yield GLOBAL_STATE, text, gr.update(value=last_frame_idx)
 
 
 
 
 
558
 
559
 
560
  def reset_session(GLOBAL_STATE: gr.State) -> tuple[AppState, Image.Image, int, int, str]: