microsoft/VibeVoice · error · NotImplementedError
{algorithm_type} is not implemented for {self.__class__}
Error message
{algorithm_type} is not implemented for {self.__class__} What it means
The scheduler accepts algorithm_type in {`dpmsolver`, `dpmsolver++`, `sde-dpmsolver`, `sde-dpmsolver++`}; the legacy value `deis` is silently remapped to `dpmsolver++`. Every other string raises NotImplementedError at construction time. The algorithm choice decides whether the model output is converted to x0-prediction (++) or epsilon-prediction, so it must be one of the implemented solvers.
Source
Thrown at vibevoice/schedule/dpm_solver.py:274
# Close to 0 without being 0 so first sigma is not inf
# FP16 smallest positive subnormal works well here
self.alphas_cumprod[-1] = 2**-24
# Currently we only support VP-type noise schedule
self.alpha_t = torch.sqrt(self.alphas_cumprod)
self.sigma_t = torch.sqrt(1 - self.alphas_cumprod)
self.lambda_t = torch.log(self.alpha_t) - torch.log(self.sigma_t)
self.sigmas = ((1 - self.alphas_cumprod) / self.alphas_cumprod) ** 0.5
# standard deviation of the initial noise distribution
self.init_noise_sigma = 1.0
# settings for DPM-Solver
if algorithm_type not in ["dpmsolver", "dpmsolver++", "sde-dpmsolver", "sde-dpmsolver++"]:
if algorithm_type == "deis":
self.register_to_config(algorithm_type="dpmsolver++")
else:
raise NotImplementedError(f"{algorithm_type} is not implemented for {self.__class__}")
if solver_type not in ["midpoint", "heun"]:
if solver_type in ["logrho", "bh1", "bh2"]:
self.register_to_config(solver_type="midpoint")
else:
raise NotImplementedError(f"{solver_type} is not implemented for {self.__class__}")
if algorithm_type not in ["dpmsolver++", "sde-dpmsolver++"] and final_sigmas_type == "zero":
raise ValueError(
f"`final_sigmas_type` {final_sigmas_type} is not supported for `algorithm_type` {algorithm_type}. Please choose `sigma_min` instead."
)
# settable values
self.num_inference_steps = None
timesteps = np.linspace(0, num_train_timesteps - 1, num_train_timesteps, dtype=np.float32)[::-1].copy()
self.timesteps = torch.from_numpy(timesteps)
self.model_outputs = [None] * solver_order
self.lower_order_nums = 0View on GitHub (pinned to 94da20d98b)
Solutions
- Use one of: "dpmsolver", "dpmsolver++", "sde-dpmsolver", "sde-dpmsolver++" (use the sde- variants only if your step function passes noise for the SDE).
- If you typed "deis", that works (remapped); if you typed "deis++", change it to "dpmsolver++".
- Sanity-check config strings loaded from files before scheduler construction.
Example fix
# before sched = DPMSolverMultistepScheduler(..., algorithm_type="deis++") # after sched = DPMSolverMultistepScheduler(..., algorithm_type="dpmsolver++")
Defensive patterns
Strategy: validation
Validate before calling
ALGOS = {"dpmsolver", "dpmsolver++", "sde-dpmsolver", "sde-dpmsolver++", "deis"}
assert algorithm_type in ALGOS, f"algorithm_type must be one of {sorted(ALGOS)}"
sched = DPMSolverMultistepScheduler(..., algorithm_type=algorithm_type) Type guard
def is_supported_algorithm_type(v) -> bool:
return isinstance(v, str) and v in {
"dpmsolver", "dpmsolver++", "sde-dpmsolver", "sde-dpmsolver++", "deis"
} Prevention
- Use exact strings: 'dpmsolver++' with two plus signs, no spaces.
- 'deis' is accepted but silently remapped to 'dpmsolver++' — be aware when reproducing results.
- sde- variants require passing noise into step(); only select them if your sampler provides it.
When it happens
Trigger: Constructing the scheduler with `algorithm_type="deis++"`, `"dpmsolver+++"`, or any typo — `deis` alone is accepted and remapped, but `deis++` and everything else are not.
Common situations: Hand-editing scheduler configs, copying `deis++` from DEIS papers/other repos, or case/spacing typos in YAML pipeline configs.
Related errors
- {solver_type} is not implemented for {self.__class__}
- Unsupported alpha_transform_type: {alpha_transform_type}
- {beta_schedule} is not implemented for {self.__class__}
- `final_sigmas_type` {final_sigmas_type} is not supported for
- Cannot use `timesteps` with `config.use_karras_sigmas = True
AI-assisted analysis of microsoft/VibeVoice@94da20d98b (2026-08-15).
Data as JSON: /api/errors/f021c0c2bf3621f5.
Report an issue: GitHub.