From f385049e65727b137e0719e5dbbf2fcc8bc6fd83 Mon Sep 17 00:00:00 2001 From: "Wang, Yi" Date: Mon, 25 May 2026 10:29:25 +0800 Subject: [PATCH] Initialize ZImage pad tokens deterministically This PR fixes a determinism issue in ZImageTransformer2DModel by initializing its pad tokens with zeros instead of torch.empty(). The model's pad tokens participate in the forward path when padded caption or image tokens are present. Because they were previously created with torch.empty(), direct model instantiation from config could pick up uninitialized values, which made outputs unstable across runs and could surface NaNs in layerwise casting tests. Signed-off-by: Wang, Yi --- src/diffusers/models/transformers/transformer_z_image.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/diffusers/models/transformers/transformer_z_image.py b/src/diffusers/models/transformers/transformer_z_image.py index 614fb0f1210c..4cea745e5ed5 100644 --- a/src/diffusers/models/transformers/transformer_z_image.py +++ b/src/diffusers/models/transformers/transformer_z_image.py @@ -457,14 +457,14 @@ def __init__( for layer_id in range(n_refiner_layers) ] ) - self.siglip_pad_token = nn.Parameter(torch.empty((1, dim))) + self.siglip_pad_token = nn.Parameter(torch.zeros((1, dim))) else: self.siglip_embedder = None self.siglip_refiner = None self.siglip_pad_token = None - self.x_pad_token = nn.Parameter(torch.empty((1, dim))) - self.cap_pad_token = nn.Parameter(torch.empty((1, dim))) + self.x_pad_token = nn.Parameter(torch.zeros((1, dim))) + self.cap_pad_token = nn.Parameter(torch.zeros((1, dim))) self.layers = nn.ModuleList( [