microsoft/VibeVoice · error · ValueError
prediction_type given as {self.config.prediction_type} must
Error message
prediction_type given as {self.config.prediction_type} must be one of `epsilon`, `sample`, or `v_prediction` for the DPMSolverMultistepScheduler. What it means
Under DPM-Solver++ (`algorithm_type` in {dpmsolver++, sde-dpmsolver++}) the model output is converted to an x0 prediction, and the conversion formula depends on `config.prediction_type`. This scheduler implements `epsilon`, `sample`, and `v_prediction`; anything else raises ValueError during `step()` (via `_convert_model_output`). prediction_type must match how the underlying diffusion model was trained.
Source
Thrown at vibevoice/schedule/dpm_solver.py:586
)
# DPM-Solver++ needs to solve an integral of the data prediction model.
if self.config.algorithm_type in ["dpmsolver++", "sde-dpmsolver++"]:
if self.config.prediction_type == "epsilon":
# DPM-Solver and DPM-Solver++ only need the "mean" output.
if self.config.variance_type in ["learned", "learned_range"]:
model_output = model_output[:, :3]
sigma = self.sigmas[self.step_index]
alpha_t, sigma_t = self._sigma_to_alpha_sigma_t(sigma)
x0_pred = (sample - sigma_t * model_output) / alpha_t
elif self.config.prediction_type == "sample":
x0_pred = model_output
elif self.config.prediction_type == "v_prediction":
sigma = self.sigmas[self.step_index]
alpha_t, sigma_t = self._sigma_to_alpha_sigma_t(sigma)
x0_pred = alpha_t * sample - sigma_t * model_output
else:
raise ValueError(
f"prediction_type given as {self.config.prediction_type} must be one of `epsilon`, `sample`, or"
" `v_prediction` for the DPMSolverMultistepScheduler."
)
if self.config.thresholding:
x0_pred = self._threshold_sample(x0_pred)
return x0_pred
# DPM-Solver needs to solve an integral of the noise prediction model.
elif self.config.algorithm_type in ["dpmsolver", "sde-dpmsolver"]:
if self.config.prediction_type == "epsilon":
# DPM-Solver and DPM-Solver++ only need the "mean" output.
if self.config.variance_type in ["learned", "learned_range"]:
epsilon = model_output[:, :3]
else:
epsilon = model_output
elif self.config.prediction_type == "sample":View on GitHub (pinned to 94da20d98b)
Solutions
- Set prediction_type to "epsilon" (standard noise prediction), "sample" (direct x0), or "v_prediction".
- Match it to the model's training objective — if the checkpoint is flow-matching, this scheduler family is the wrong choice; use a flow-matching/Euler scheduler.
- Check the original model card / training config for the parameterisation before overriding.
Example fix
# before sched = DPMSolverMultistepScheduler(..., prediction_type="v") # after sched = DPMSolverMultistepScheduler(..., prediction_type="v_prediction")
Defensive patterns
Strategy: validation
Validate before calling
PT = {"epsilon", "sample", "v_prediction"}
assert scheduler.config.prediction_type in PT, (
f"prediction_type {scheduler.config.prediction_type!r} unsupported; "
f"match the model's training objective ({sorted(PT)})"
) Type guard
def is_supported_prediction_type(v) -> bool:
return isinstance(v, str) and v in {"epsilon", "sample", "v_prediction"} Prevention
- Set prediction_type from the checkpoint's training config, never by guesswork.
- No flow-matching support here — flow checkpoints need a flow-matching scheduler.
- Use the full spelling 'v_prediction', not 'v'.
When it happens
Trigger: Loading a scheduler config with `prediction_type="v"` or `"epsilon_v"` (some repos use short names), or a flow-matching model (`prediction_type="flow_prediction"`) sampled with this scheduler, then calling `scheduler.step()`.
Common situations: Mismatched model/scheduler checkpoints (e.g. trying to sample a rectified-flow or v-parameterised checkpoint with DPM-Solver settings from an epsilon model); config hand-edits; short-name conventions from other codebases.
Related errors
- Unsupported alpha_transform_type: {alpha_transform_type}
- {beta_schedule} is not implemented for {self.__class__}
- {algorithm_type} is not implemented for {self.__class__}
- {solver_type} is not implemented for {self.__class__}
- `final_sigmas_type` {final_sigmas_type} is not supported for
AI-assisted analysis of microsoft/VibeVoice@94da20d98b (2026-08-15).
Data as JSON: /api/errors/0b652b553bbc0871.
Report an issue: GitHub.