fix cuda graph

This commit is contained in:
yuvraj108c
2024-10-04 13:32:57 +04:00
parent 7491b548d1
commit 987334d48d
-29
View File
@@ -4,11 +4,8 @@ from comfy.model_management import get_torch_device
from .vfi_utilities import preprocess_frames, postprocess_frames, generate_frames_rife, logger
from .trt_utilities import Engine
import folder_paths
<<<<<<< Updated upstream
=======
import time
from polygraphy import cuda
>>>>>>> Stashed changes
ENGINE_DIR = os.path.join(folder_paths.models_dir, "tensorrt", "rife")
@@ -21,10 +18,7 @@ class RifeTensorrt:
"engine": (os.listdir(ENGINE_DIR),),
"clear_cache_after_n_frames": ("INT", {"default": 50, "min": 1, "max": 1000}),
"multiplier": ("INT", {"default": 2, "min": 1}),
<<<<<<< Updated upstream
=======
"use_cuda_graph": ("BOOLEAN", {"default": True}),
>>>>>>> Stashed changes
"keep_model_loaded": ("BOOLEAN", {"default": False}),
},
}
@@ -32,10 +26,7 @@ class RifeTensorrt:
RETURN_TYPES = ("IMAGE", )
FUNCTION = "vfi"
CATEGORY = "tensorrt"
<<<<<<< Updated upstream
=======
OUTPUT_NODE=True
>>>>>>> Stashed changes
def vfi(
self,
@@ -43,12 +34,8 @@ class RifeTensorrt:
engine,
clear_cache_after_n_frames=50,
multiplier=2,
<<<<<<< Updated upstream
keep_model_loaded=False
=======
use_cuda_graph=True,
keep_model_loaded=False,
>>>>>>> Stashed changes
):
B, H, W, C = frames.shape
shape_dict = {
@@ -57,12 +44,7 @@ class RifeTensorrt:
"output": {"shape": (1, 3, H, W)},
}
<<<<<<< Updated upstream
# cache tensorrt engine in memory
cudaStream = torch.cuda.current_stream().cuda_stream
=======
cudaStream = cuda.Stream()
>>>>>>> Stashed changes
engine_path = os.path.join(ENGINE_DIR, engine)
if (not hasattr(self, 'engine') or self.engine_label != engine):
self.engine = Engine(engine_path)
@@ -76,16 +58,6 @@ class RifeTensorrt:
self.engine.allocate_buffers(shape_dict=shape_dict)
frames = preprocess_frames(frames)
<<<<<<< Updated upstream
def return_middle_frame(frame_0, frame_1, timestep):
timestep_t = torch.tensor([timestep], dtype=torch.float32).to(get_torch_device())
output = self.engine.infer({"img0": frame_0, "img1": frame_1, "timestep": timestep_t}, cudaStream)
result = output['output']
return result
=======
def return_middle_frame(frame_0, frame_1, timestep):
timestep_t = torch.tensor([timestep], dtype=torch.float32).to(get_torch_device())
@@ -97,7 +69,6 @@ class RifeTensorrt:
result = output['output']
return result
>>>>>>> Stashed changes
result = generate_frames_rife(frames, clear_cache_after_n_frames, multiplier, return_middle_frame)
out = postprocess_frames(result)