This starter is annotated reading material and the source of truth for the lab preview. Running anything is optional; the reading goal is to explain the mechanism without hiding behind a framework call.
Read scheduler configuration as the time axis and update rule of inference.
## Scheduler call sequence
1. `scheduler.set_timesteps(num_inference_steps)`
2. `latent_model_input = scheduler.scale_model_input(latents, t)`
3. `noise_pred = denoiser(latent_model_input, t, condition)`
4. `latents = scheduler.step(noise_pred, t, latents).prev_sample`