This commit is contained in:
kijai
2025-05-09 14:59:44 +03:00
parent 6682a0905e
commit 91aabfc857
3 changed files with 10 additions and 26 deletions
@@ -742,7 +742,7 @@ class HunyuanVideoPipeline(DiffusionPipeline):
self.transformer.slg_start_percent = slg_args["start_percent"] self.transformer.slg_start_percent = slg_args["start_percent"]
self.transformer.slg_end_percent = slg_args["end_percent"] self.transformer.slg_end_percent = slg_args["end_percent"]
else: else:
self.transformer.slg_blocks = None self.transformer.slg_single_blocks = self.transformer.slg_double_blocks = None
logger.info(f"Sampling {video_length} frames in {latents.shape[2]} latents at {width}x{height} with {len(timesteps)} inference steps") logger.info(f"Sampling {video_length} frames in {latents.shape[2]} latents at {width}x{height} with {len(timesteps)} inference steps")
-8
View File
@@ -760,8 +760,6 @@ class HYVideoDiffusionTransformer(ModelMixin, ConfigMixin):
self.accumulated_rel_l1_distance = 0 self.accumulated_rel_l1_distance = 0
self.previous_modulated_input = None self.previous_modulated_input = None
self.previous_residual = None self.previous_residual = None
self.last_dimensions = None
self.last_frame_count = None
self.teacache_device = None self.teacache_device = None
self.slg_single_blocks = None self.slg_single_blocks = None
@@ -1168,12 +1166,6 @@ class HYVideoDiffusionTransformer(ModelMixin, ConfigMixin):
self.teacache_skipped_steps_uncond += 1 self.teacache_skipped_steps_uncond += 1
else: else:
self.teacache_skipped_steps_cond += 1 self.teacache_skipped_steps_cond += 1
# Verify tensor dimensions match before adding
if img.shape == previous_residual.shape:
img = img + previous_residual.to(img.device)
else:
should_calc = True # Force recalculation if dimensions don't match
if should_calc: if should_calc:
ori_img = img.clone() ori_img = img.clone()
+9 -17
View File
@@ -1419,23 +1419,15 @@ class HyVideoSampler:
# Initialize TeaCache if enabled # Initialize TeaCache if enabled
if teacache_args is not None: if teacache_args is not None:
# Check if dimensions have changed since last run transformer.cnt = 0
if (not hasattr(transformer, 'last_dimensions') or transformer.teacache_skipped_steps_cond = 0
transformer.last_dimensions != (height, width, num_frames) or transformer.teacache_skipped_steps_uncond = 0
not hasattr(transformer, 'last_frame_count') or transformer.accumulated_rel_l1_distance = 0
transformer.last_frame_count != num_frames): transformer.previous_modulated_input = None
# Reset TeaCache state on dimension change transformer.previous_residual = None
transformer.cnt = 0 transformer.teacache_device = device
transformer.teacache_skipped_steps_cond = 0 transformer.teacache_start_step = 0
transformer.teacache_skipped_steps_uncond = 0 transformer.teacache_end_step = steps - 1
transformer.accumulated_rel_l1_distance = 0
transformer.previous_modulated_input = None
transformer.previous_residual = None
transformer.last_dimensions = (height, width, num_frames)
transformer.last_frame_count = num_frames
transformer.teacache_device = device
transformer.teacache_start_step = 0
transformer.teacache_end_step = steps - 1
transformer.enable_teacache = True transformer.enable_teacache = True
transformer.num_steps = steps transformer.num_steps = steps