{"record":{"id":"1c17bbfd2114bc58","repo":"microsoft/VibeVoice","slug":"beta-schedule-is-not-implemented-for-self-cla","errorCode":null,"errorMessage":"{beta_schedule} is not implemented for {self.__class__}","messagePattern":"(.+?) is not implemented for (.+?)","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"vibevoice/schedule/dpm_solver.py","lineNumber":247,"sourceCode":"            deprecation_message = f\"algorithm_type {algorithm_type} is deprecated and will be removed in a future version. Choose from `dpmsolver++` or `sde-dpmsolver++` instead\"\n            deprecate(\"algorithm_types dpmsolver and sde-dpmsolver\", \"1.0.0\", deprecation_message)\n\n        if trained_betas is not None:\n            self.betas = torch.tensor(trained_betas, dtype=torch.float32)\n        elif beta_schedule == \"linear\":\n            self.betas = torch.linspace(beta_start, beta_end, num_train_timesteps, dtype=torch.float32)\n        elif beta_schedule == \"scaled_linear\":\n            # this schedule is very specific to the latent diffusion model.\n            self.betas = torch.linspace(beta_start**0.5, beta_end**0.5, num_train_timesteps, dtype=torch.float32) ** 2\n        elif beta_schedule == \"squaredcos_cap_v2\" or beta_schedule == \"cosine\":\n            # Glide cosine schedule\n            self.betas = betas_for_alpha_bar(num_train_timesteps, alpha_transform_type=\"cosine\")\n        elif beta_schedule == \"cauchy\":\n            self.betas = betas_for_alpha_bar(num_train_timesteps, alpha_transform_type=\"cauchy\")\n        elif beta_schedule == \"laplace\":\n            self.betas = betas_for_alpha_bar(num_train_timesteps, alpha_transform_type=\"laplace\")\n        else:\n            raise NotImplementedError(f\"{beta_schedule} is not implemented for {self.__class__}\")\n\n        if rescale_betas_zero_snr:\n            self.betas = rescale_zero_terminal_snr(self.betas)\n\n        self.alphas = 1.0 - self.betas\n        self.alphas_cumprod = torch.cumprod(self.alphas, dim=0)\n\n        if rescale_betas_zero_snr:\n            # Close to 0 without being 0 so first sigma is not inf\n            # FP16 smallest positive subnormal works well here\n            self.alphas_cumprod[-1] = 2**-24\n\n        # Currently we only support VP-type noise schedule\n        self.alpha_t = torch.sqrt(self.alphas_cumprod)\n        self.sigma_t = torch.sqrt(1 - self.alphas_cumprod)\n        self.lambda_t = torch.log(self.alpha_t) - torch.log(self.sigma_t)\n        self.sigmas = ((1 - self.alphas_cumprod) / self.alphas_cumprod) ** 0.5\n","sourceCodeStart":229,"sourceCodeEnd":265,"githubUrl":"https://github.com/microsoft/VibeVoice/blob/94da20d98b2fa7688e9cbfaf7692ddb4954f7600/vibevoice/schedule/dpm_solver.py#L229-L265","documentation":"The DPM-Solver multistep scheduler constructor accepts only these beta_schedule values: `linear`, `scaled_linear`, `squaredcos_cap_v2` (alias `cosine`), `cauchy`, and `laplace` (dpm_solver.py:~238-247). Anything else raises NotImplementedError. This is a vendored copy of diffusers' DPMSolverMultistepScheduler, so configs written for other diffusers versions (e.g. `sigmoid`, which newer diffusers added) will fail here.","triggerScenarios":"Constructing the scheduler with `beta_schedule=\"sigmoid\"` (or any unsupported string), typically from a pipeline config dict / model card JSON that was authored against a different diffusers release.","commonSituations":"Loading a diffusers model config saved by a newer diffusers (sigmoid schedule exists there but not in this vendored copy); hand-written config with typos; porting pipelines between repos.","solutions":["Change beta_schedule to a supported value: \"linear\", \"scaled_linear\", \"squaredcos_cap_v2\" (or \"cosine\"), \"cauchy\", \"laplace\".","If the checkpoint genuinely needs `sigmoid`, port that branch from upstream diffusers `scheduling_dpmsolver.py` into this local copy.","Validate/normalize scheduler config keys before constructing the scheduler."],"exampleFix":"# before\nsched = DPMSolverMultistepScheduler(..., beta_schedule=\"sigmoid\")\n\n# after\nsched = DPMSolverMultistepScheduler(..., beta_schedule=\"scaled_linear\")","handlingStrategy":"validation","validationCode":"SUPPORTED_BETA = {\"linear\", \"scaled_linear\", \"squaredcos_cap_v2\", \"cosine\", \"cauchy\", \"laplace\"}\nif beta_schedule not in SUPPORTED_BETA:\n    raise ValueError(f\"beta_schedule {beta_schedule!r} unsupported; choose from {sorted(SUPPORTED_BETA)}\")\nsched = DPMSolverMultistepScheduler(..., beta_schedule=beta_schedule)","typeGuard":"def is_supported_beta_schedule(v) -> bool:\n    return isinstance(v, str) and v in {\n        \"linear\", \"scaled_linear\", \"squaredcos_cap_v2\", \"cosine\", \"cauchy\", \"laplace\"\n    }","tryCatchPattern":null,"preventionTips":["Validate scheduler config dicts right after loading from JSON/YAML.","Remember 'sigmoid' (newer diffusers) is not implemented in this vendored copy.","Prefer 'squaredcos_cap_v2' over the 'cosine' alias for forward-compatible configs."],"tags":["python","diffusion","scheduler","config","not-implemented"],"backgroundTag":null,"analyzedSha":"94da20d98b2fa7688e9cbfaf7692ddb4954f7600","analyzedAt":"2026-08-15T04:12:07.418Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}