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

  1. Use a non-guidance-embed SANA-Video checkpoint (guidance_embeds false/absent in config)
  2. Or pass guidance via the API instead of an embedded-guidance checkpoint
  3. 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

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


AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28). Data as JSON: /api/errors/237461a1c526063d. Report an issue: GitHub.