Add support for multiple timesteps in Noise Schedulers
Is your feature request related to a problem? Please describe.
When trying to call scheduler.step with multiple timesteps it throws an error: Boolean value of Tensor with more than one value is ambiguous. The origin of this error for DDIM as example is here: https://github.com/huggingface/diffusers/blob/261a448c6aa467810545d87499f6f3bed334754f/src/diffusers/schedulers/scheduling_ddim.py#L270
The reason why I need this functionality is because I'm using scheduler.step during training, not only inference, and different examples in the batch come from different timesteps.
Describe the solution you'd like
Changing the signature of all scheduler.step functions timestep: int -> timestep: Union[int, Tensor] would allow performing steps with different timesteps. The change would be small, straightforward and 100% backwards compatible.
If this change is approved, I could open the PR for it myself
p.s. i think this could also be flagged as good first issue