Spaces:
Build error
Build error
Update app.py
Browse files
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 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
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)
|