[bugfix] Wan I2V: CLIP image conditioning silently dropped when passed as a tensor during training (#1673)

This commit is contained in:
Shao Duan
2026-08-05 01:35:09 -07:00
committed by GitHub
parent e8b0e4c61e
commit 9f1e7c19d2
4 changed files with 15 additions and 25 deletions
+6 -10
View File
@@ -588,11 +588,9 @@ class CausalWanTransformer3DModel(BaseDiT):
orig_dtype = hidden_states.dtype
if not isinstance(encoder_hidden_states, torch.Tensor):
encoder_hidden_states = encoder_hidden_states[0]
if isinstance(encoder_hidden_states_image,
list) and len(encoder_hidden_states_image) > 0:
encoder_hidden_states_image = encoder_hidden_states_image[0]
else:
encoder_hidden_states_image = None
if isinstance(encoder_hidden_states_image, list):
encoder_hidden_states_image = (encoder_hidden_states_image[0]
if len(encoder_hidden_states_image) > 0 else None)
batch_size, num_channels, num_frames, height, width = hidden_states.shape
p_t, p_h, p_w = self.patch_size
@@ -702,11 +700,9 @@ class CausalWanTransformer3DModel(BaseDiT):
teacher_forcing = clean_x is not None
if not isinstance(encoder_hidden_states, torch.Tensor):
encoder_hidden_states = encoder_hidden_states[0]
if isinstance(encoder_hidden_states_image,
list) and len(encoder_hidden_states_image) > 0:
encoder_hidden_states_image = encoder_hidden_states_image[0]
else:
encoder_hidden_states_image = None
if isinstance(encoder_hidden_states_image, list):
encoder_hidden_states_image = (encoder_hidden_states_image[0]
if len(encoder_hidden_states_image) > 0 else None)
batch_size, num_channels, num_frames, height, width = hidden_states.shape
p_t, p_h, p_w = self.patch_size
+3 -5
View File
@@ -416,11 +416,9 @@ class DreamXWorldTransformer3DModel(WanTransformer3DModel):
if encoder_hidden_states is not None and not isinstance(
encoder_hidden_states, torch.Tensor):
encoder_hidden_states = encoder_hidden_states[0]
if isinstance(encoder_hidden_states_image,
list) and len(encoder_hidden_states_image) > 0:
encoder_hidden_states_image = encoder_hidden_states_image[0]
else:
encoder_hidden_states_image = None
if isinstance(encoder_hidden_states_image, list):
encoder_hidden_states_image = (encoder_hidden_states_image[0]
if len(encoder_hidden_states_image) > 0 else None)
batch_size, _, num_frames, height, width = hidden_states.shape
p_t, p_h, p_w = self.patch_size
+3 -5
View File
@@ -311,11 +311,9 @@ class LingBotWorldTransformer3DModel(BaseDiT):
orig_dtype = hidden_states.dtype
if encoder_hidden_states is not None and not isinstance(encoder_hidden_states, torch.Tensor):
encoder_hidden_states = encoder_hidden_states[0]
if isinstance(encoder_hidden_states_image,
list) and len(encoder_hidden_states_image) > 0:
encoder_hidden_states_image = encoder_hidden_states_image[0]
else:
encoder_hidden_states_image = None
if isinstance(encoder_hidden_states_image, list):
encoder_hidden_states_image = (encoder_hidden_states_image[0]
if len(encoder_hidden_states_image) > 0 else None)
batch_size, num_channels, num_frames, height, width = hidden_states.shape
p_t, p_h, p_w = self.patch_size
+3 -5
View File
@@ -694,11 +694,9 @@ class WanTransformer3DModel(BaseDiT):
orig_dtype = hidden_states.dtype
if encoder_hidden_states is not None and not isinstance(encoder_hidden_states, torch.Tensor):
encoder_hidden_states = encoder_hidden_states[0]
if isinstance(encoder_hidden_states_image,
list) and len(encoder_hidden_states_image) > 0:
encoder_hidden_states_image = encoder_hidden_states_image[0]
else:
encoder_hidden_states_image = None
if isinstance(encoder_hidden_states_image, list):
encoder_hidden_states_image = (encoder_hidden_states_image[0]
if len(encoder_hidden_states_image) > 0 else None)
batch_size, num_channels, num_frames, height, width = hidden_states.shape
p_t, p_h, p_w = self.patch_size