From 4d8713f6e48bb36dcacbb6ca698591828061fc07 Mon Sep 17 00:00:00 2001 From: SolitaryThinker Date: Sun, 5 Jul 2026 15:01:25 -0700 Subject: [PATCH] [bugfix]: bound WanCausalModel num_frames_per_block override to <= 3 The constructor override only checked >= 1, bypassing the <= 3 limit the config path enforces in CausalWanTransformer3DModel. Apply the same upper bound with a clear error message. --- fastvideo/train/models/wan/wan_causal.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/fastvideo/train/models/wan/wan_causal.py b/fastvideo/train/models/wan/wan_causal.py index 59a5330cc..c7cfb78a7 100644 --- a/fastvideo/train/models/wan/wan_causal.py +++ b/fastvideo/train/models/wan/wan_causal.py @@ -64,9 +64,14 @@ class WanCausalModel(WanModel, CausalModelBase): self._streaming_caches: (dict[tuple[int, str], _StreamingCaches]) = {} if num_frames_per_block is not None: - if int(num_frames_per_block) < 1: - raise ValueError("num_frames_per_block must be >= 1") - self.transformer.num_frame_per_block = int(num_frames_per_block) + num_frames_per_block = int(num_frames_per_block) + if not 1 <= num_frames_per_block <= 3: + # Same bound as CausalWanTransformer3DModel's config path + # (assert num_frame_per_block <= 3); this override must not + # bypass it. + raise ValueError("num_frames_per_block must be between 1 and 3, " + f"got {num_frames_per_block}") + self.transformer.num_frame_per_block = num_frames_per_block # --- CausalModelBase override: clear_caches --- def clear_caches(