{"record":{"id":"4f1dd10c35bce142","repo":"sgl-project/sglang","slug":"prepacked-latent-frame-camera-conditions-require-c","errorCode":null,"errorMessage":"Prepacked latent-frame camera_conditions require chunk_plucker for this SANA-WM checkpoint. Pass chunk_plucker with shape (B,48,T,H,W), or pass original-frame camera_conditions so SGLang can derive chunk_plucker.","messagePattern":"Prepacked latent-frame camera_conditions require chunk_plucker for this SANA-WM checkpoint\\. Pass chunk_plucker with shape \\(B,48,T,H,W\\), or pass original-frame camera_conditions so SGLang can derive chunk_plucker\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/sana_wm/base.py","lineNumber":1895,"sourceCode":"                    f\"got {tuple(camera_conditions.shape)}\"\n                )\n            if camera_conditions.shape[0] == 1 and batch_size > 1:\n                camera_conditions = camera_conditions.expand(batch_size, -1, -1)\n            if camera_conditions.shape[0] != batch_size:\n                raise ValueError(\n                    \"camera_conditions batch dimension must be 1 or match \"\n                    f\"request batch size {batch_size}, got \"\n                    f\"{camera_conditions.shape[0]}.\"\n                )\n            if camera_conditions.shape[-1] != 20:\n                raise ValueError(\n                    \"camera_conditions must have last dimension 20, got \"\n                    f\"{tuple(camera_conditions.shape)}\"\n                )\n            if camera_conditions.shape[1] == T_lat:\n                source = \"prepacked\"\n                if chunk_plucker is None and requires_chunk_plucker:\n                    raise ValueError(\n                        \"Prepacked latent-frame camera_conditions require \"\n                        \"chunk_plucker for this SANA-WM checkpoint. Pass \"\n                        \"chunk_plucker with shape (B,48,T,H,W), or pass \"\n                        \"original-frame camera_conditions so SGLang can \"\n                        \"derive chunk_plucker.\"\n                    )\n            else:\n                source = \"prebuilt_original_frames\"\n                original_camera_conditions = self._pad_or_trim_frames(\n                    camera_conditions, num_frames\n                )\n                camera_conditions = self._latent_frame_camera_conditions(\n                    original_camera_conditions,\n                    num_frames=num_frames,\n                    latent_frames=T_lat,\n                    vae_temporal_stride=vae_temporal_stride,\n                )\n                if chunk_plucker is None:","sourceCodeStart":1877,"sourceCodeEnd":1913,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/sana_wm/base.py#L1877-L1913","documentation":"When camera_conditions has T equal to the latent frame count (prepacked), the stage cannot derive chunk_plucker itself. This checkpoint requires chunk_plucker (B,48,T_lat,H,W), so passing prepacked conditions without it raises this error.","triggerScenarios":"Passing camera_conditions already resampled to latent-frame length (shape[1] == T_lat) without a chunk_plucker argument, on a checkpoint whose model needs plücker embeddings (requires_chunk_plucker=True).","commonSituations":"Replaying cached/precomputed latent-rate camera conditioning from a diffusers pipeline into SGLang without also exporting the plücker chunk tensor.","solutions":["Pass original-frame camera_conditions (T == original frames) so SGLang derives chunk_plucker itself.","Or export chunk_plucker of shape (B,48,T,H,W) alongside the prepacked conditions.","Or downgrade/choose a checkpoint that does not require chunk plücker embeddings."],"exampleFix":"# before\nstage.forward(..., diffusers_kwargs={'camera_conditions': latent_rate_cond})\n# after\nstage.forward(..., diffusers_kwargs={'camera_conditions': latent_rate_cond, 'chunk_plucker': plucker})","handlingStrategy":"validation","validationCode":"if camera_conditions.shape[1] == T_lat and chunk_plucker is None:\n    raise ValueError('pass original-frame conditions or add chunk_plucker')  # fail before submit","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Cache (prepacked_conditions, chunk_plucker) as a pair; never one without the other.","Prefer original-frame camera_conditions in new code."],"tags":["sglang","sana-wm","chunk-plucker","prepacked-conditions","world-model"],"backgroundTag":"missing-required-model-input","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}