1inkusFace commited on
Commit
b5ba988
·
verified ·
1 Parent(s): c6e440a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -17
app.py CHANGED
@@ -33,7 +33,34 @@ torch.set_float32_matmul_precision("highest")
33
  device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
34
 
35
  import spaces
36
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  @spaces.GPU(duration=90)
38
  def generate_video(prompt, seed, image=None):
39
  global task_type
@@ -55,22 +82,11 @@ def generate_video(prompt, seed, image=None):
55
  }
56
  assert image is not None, "please input image"
57
  kwargs["image"] = load_image(image=image)
58
- config = {
59
- "task_type": TaskType.I2V,
60
- "model_id": "Skywork/SkyReels-V1-Hunyuan-I2V", # Replace!
61
- "quant_model": True,
62
- "world_size": 1,
63
- "is_offload": True,
64
- "offload_config": OffloadConfig(
65
- high_cpu_memory=True,
66
- parameters_level=True,
67
- compiler_transformer=False, # Change to True to enable warm-up
68
- ),
69
- }
70
- global predictor
71
- # Check if the predictor is already running
72
- predictor = Predictor()
73
- predictor.initialize(**config) # Pass stored config
74
  output = predictor.infer(**kwargs)
75
  save_dir = f"./result/{task_type}"
76
  os.makedirs(save_dir, exist_ok=True)
 
33
  device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
34
 
35
  import spaces
36
+
37
+ _predictor = None # Global variable to hold the predictor
38
+
39
+ @spaces.GPU(duration=90) # We DO need @spaces.GPU on init_predictor
40
+ def init_predictor():
41
+ global _predictor
42
+ import logging
43
+ logger = logging.getLogger(__name__) #Logger
44
+
45
+ if _predictor is None:
46
+ _predictor = SkyReelsVideoSingleGpuInfer(
47
+ task_type=TaskType.I2V,
48
+ model_id="Skywork/SkyReels-V1-Hunyuan-I2V", # Replace!
49
+ quant_model=True,
50
+ is_offload=True,
51
+ offload_config=OffloadConfig(
52
+ high_cpu_memory=True,
53
+ parameters_level=True,
54
+ compiler_transformer=False, # Set to True to enable compilation/warm-up
55
+ ),
56
+ )
57
+ _predictor.initialize() # Initialize *after* creation
58
+ logger.info("Predictor initialized")
59
+ else:
60
+ logger.warning("Predictor already initialized (should be rare).")
61
+
62
+
63
+
64
  @spaces.GPU(duration=90)
65
  def generate_video(prompt, seed, image=None):
66
  global task_type
 
82
  }
83
  assert image is not None, "please input image"
84
  kwargs["image"] = load_image(image=image)
85
+ global _predictor
86
+
87
+ if _predictor is None:
88
+ init_predictor()
89
+
 
 
 
 
 
 
 
 
 
 
 
90
  output = predictor.infer(**kwargs)
91
  save_dir = f"./result/{task_type}"
92
  os.makedirs(save_dir, exist_ok=True)