sgl-project/sglang · error · NotImplementedError
SANA-Video checkpoints with embedded guidance are not suppor
Error message
SANA-Video checkpoints with embedded guidance are not supported
What it means
SANA-Video raises NotImplementedError at construction when the checkpoint config has guidance_embeds enabled — this implementation has no guidance-embedding pathway, so such checkpoints are explicitly rejected rather than silently misbehaving.
Source
Thrown at python/sglang/multimodal_gen/runtime/models/dits/sana_video.py:472
self.patch_size = tuple(arch.patch_size)
self.inner_dim = arch.num_attention_heads * arch.attention_head_dim
self.hidden_size = self.inner_dim
self.num_attention_heads = arch.num_attention_heads
self.num_channels_latents = arch.num_channels_latents
self.caption_channels = arch.caption_channels
self.cross_attention_dim = arch.cross_attention_dim
self.rope = SanaVideoRotaryPosEmbed(
arch.attention_head_dim, self.patch_size, arch.rope_max_seq_len
)
self.patch_embedding = nn.Conv3d(
arch.in_channels,
self.inner_dim,
kernel_size=self.patch_size,
stride=self.patch_size,
)
if arch.guidance_embeds:
raise NotImplementedError(
"SANA-Video checkpoints with embedded guidance are not supported"
)
self.time_embed = SanaAdaLayerNormSingle(self.inner_dim)
self.caption_projection = PixArtAlphaTextProjection(
in_features=arch.caption_channels, hidden_size=self.inner_dim
)
self.caption_norm = RMSNorm(self.inner_dim, eps=1e-5)
self.transformer_blocks = nn.ModuleList(
[
SanaVideoTransformerBlock(
dim=self.inner_dim,
num_attention_heads=arch.num_attention_heads,
attention_head_dim=arch.attention_head_dim,
num_cross_attention_heads=arch.num_cross_attention_heads,
cross_attention_head_dim=arch.cross_attention_head_dim,
cross_attention_dim=arch.cross_attention_dim,
mlp_ratio=arch.mlp_ratio,
norm_eps=arch.norm_eps,View on GitHub (pinned to 0132848349)
Solutions
- Use a non-guidance-embed SANA-Video checkpoint (guidance_embeds false/absent in config)
- Or pass guidance via the API instead of an embedded-guidance checkpoint
- Wait for/update to a library version implementing guidance_embeds
Example fix
# before: config.json has "guidance_embeds": true model = SanaVideoModel.from_pretrained(distilled_ckpt) # after: choose base variant model = SanaVideoModel.from_pretrained(base_ckpt)
Defensive patterns
Strategy: validation
Validate before calling
assert not arch.guidance_embeds, "SANA-Video guidance-embed checkpoints unsupported; use the base variant"
Type guard
def is_supported_sana_video_checkpoint(arch) -> bool:
return not getattr(arch, "guidance_embeds", False) Prevention
- Check config.json's guidance_embeds before from_pretrained
- Pin known-good checkpoint revisions
When it happens
Trigger: Loading a SANA-Video checkpoint whose arch config sets guidance_embeds=True (guidance-distilled variant).
Common situations: Pointing the loader at a newer guidance-distilled SANA-Video release; config JSON copied from the wrong variant on the hub.
Related errors
- num_frames must be positive
- SANA-Video requires encoder_hidden_states
- Encoded prompt has {tensor.shape[1]} tokens, expected at lea
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/237461a1c526063d.
Report an issue: GitHub.