sgl-project/sglang · error · ValueError
SANA-WM generator list must not be empty.
Error message
SANA-WM generator list must not be empty.
What it means
Raised by _prepare_noise_latents when the generator argument is a list/tuple of length 0 — per-sample noise generators were requested but none supplied.
Source
Thrown at python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/sana_wm/base.py:1165
if isinstance(encoded, torch.Tensor):
return encoded
raise TypeError(
"Unsupported VAE encode output for SANA-WM first-frame conditioning: "
f"{type(encoded).__name__}"
)
def _prepare_noise_latents(
self,
shape: tuple,
dtype: torch.dtype,
device: torch.device,
generator: (
torch.Generator | list[torch.Generator] | tuple[torch.Generator, ...]
),
) -> torch.Tensor:
if isinstance(generator, (list, tuple)):
if not generator:
raise ValueError("SANA-WM generator list must not be empty.")
if len(generator) == 1:
return randn_tensor(
shape, generator=generator[0], device=device, dtype=dtype
)
if len(generator) != shape[0]:
raise ValueError(
"SANA-WM generator list length must match latent batch size; "
f"got {len(generator)} generators for batch {shape[0]}."
)
sample_shape = (1, *shape[1:])
return torch.cat(
[
randn_tensor(
sample_shape,
generator=sample_generator,
device=device,
dtype=dtype,
)View on GitHub (pinned to 0132848349)
Solutions
- Pass None to use the default generator instead of an empty list
- Or pass a single generator, which is applied to the whole batch
- Guard: generators or None
Example fix
# before gens = [make_gen(s) for s in seeds if s is not None] # may be [] # after gens = [make_gen(s) for s in seeds if s is not None] or None
Defensive patterns
Strategy: validation
Validate before calling
generator = generator if (generator is None or len(generator) > 0) else None
Type guard
def generator_ok(g) -> bool:
return g is None or not isinstance(g, (list, tuple)) or len(g) >= 1 Prevention
- Coerce empty generator lists to None at the boundary
- Never build generator lists from possibly-empty seed sources
When it happens
Trigger: Passing generator=[] (e.g. an empty per-batch generator list built from an empty request list) into the latent-init path.
Common situations: Building generators as [g for _ in requests] when requests is empty; upstream filtering removed all generators before the call.
Related errors
- SANA-WM generator list length must match latent batch size;
- SANA-WM seed list must not be empty.
- plucker_emb token count {plucker_emb.shape[1]} != latent tok
- chunk_size must be > 0, got {chunk_size}.
- You have passed a list of generators of length {len(generato
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/a08613827fe1318a.
Report an issue: GitHub.