{"record":{"id":"9307d872a16ecc28","repo":"sgl-project/sglang","slug":"expected-scheduler-sigmas-to-be-a-tensor-for-ltx-2","errorCode":null,"errorMessage":"Expected scheduler.sigmas to be a tensor for LTX-2.","messagePattern":"Expected scheduler\\.sigmas to be a tensor for LTX-2\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/ltx_2/denoising.py","lineNumber":1724,"sourceCode":"        return self._build_attn_metadata(step_index, batch, server_args)\n\n    def _run_denoising_step(\n        self,\n        ctx: LTX2DenoisingContext,\n        step: DenoisingStepState,\n        batch: Req,\n        server_args: ServerArgs,\n    ) -> None:\n        \"\"\"Run one joint video/audio denoising step with LTX-2-specific guidance.\"\"\"\n        if ctx.audio_latents is None:\n            raise ValueError(\"LTX-2 requires audio latents for denoising.\")\n        if ctx.audio_scheduler is None:\n            raise ValueError(\"LTX-2 audio scheduler was not prepared.\")\n\n        # 1. Read the scheduler sigma pair and derive the Euler delta.\n        sigmas = getattr(ctx.scheduler, \"sigmas\", None)\n        if sigmas is None or not isinstance(sigmas, torch.Tensor):\n            raise ValueError(\"Expected scheduler.sigmas to be a tensor for LTX-2.\")\n        sigma = sigmas[step.step_index].to(\n            device=ctx.latents.device, dtype=torch.float32\n        )\n        sigma_next = sigmas[step.step_index + 1].to(\n            device=ctx.latents.device, dtype=torch.float32\n        )\n        dt = sigma_next - sigma\n        sigma_val = float(sigma.item())\n        sigma_next_val = float(sigma_next.item())\n\n        stage1_guider_params = self._get_ltx2_stage1_guider_params(\n            batch, server_args, ctx.stage\n        )\n        model_inputs = self._prepare_ltx2_model_inputs(\n            ctx, step, batch, server_args, sigma\n        )\n        batch_size = int(model_inputs.latent_model_input.shape[0])\n        base_model_kwargs = self._build_ltx2_base_model_kwargs(ctx, batch, model_inputs)","sourceCodeStart":1706,"sourceCodeEnd":1742,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/ltx_2/denoising.py#L1706-L1742","documentation":"The LTX-2 step reads the current and next sigma from ctx.scheduler.sigmas to compute the Euler delta. If sigmas is missing or not a torch.Tensor (e.g. a list, tuple, or numpy array), indexing and device/dtype conversion would fail, so it validates first.","triggerScenarios":"ctx.scheduler.sigmas is None or a non-tensor type when the step indexes sigmas[step.step_index] and sigmas[step.step_index + 1].","commonSituations":"A custom or scheduler-mismatch (scheduler whose sigmas live elsewhere or are returned as a list); a scheduler reset that dropped sigmas; scheduler configured for a different framework version.","solutions":["Use one of the supported schedulers whose set_timesteps leaves sigmas as a torch tensor on the right device","After scheduler setup, convert: scheduler.sigmas = torch.as_tensor(scheduler.sigmas, device=...)","Check for a scheduler.reset()/re-init between prepare and the loop that nulls sigmas"],"exampleFix":"// before\nsched.sigmas = list_of_sigmas  # raises\n// after\nimport torch\nsched.sigmas = torch.tensor(list_of_sigmas, device=latents.device, dtype=torch.float32)","handlingStrategy":"fallback","validationCode":"sigmas = getattr(ctx.scheduler, \"sigmas\", None)\nif not isinstance(sigmas, torch.Tensor):\n    sigmas = torch.as_tensor(sigmas, device=ctx.latents.device, dtype=torch.float32)\n    ctx.scheduler.sigmas = sigmas","typeGuard":"def has_tensor_sigmas(sched) -> bool:\n    return isinstance(getattr(sched, \"sigmas\", None), torch.Tensor)","tryCatchPattern":null,"preventionTips":["Normalize sigmas to tensor right after set_timesteps","Use supported scheduler implementations only"],"tags":["ltx-2","scheduler","sigmas","type-validation"],"backgroundTag":"scheduler-sigmas-invalid","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}