Skip to content

Commit f60e096

Browse files
committed
Fix ordering
1 parent c635bc2 commit f60e096

File tree

5 files changed

+24
-8
lines changed

5 files changed

+24
-8
lines changed

src/diffusers/schedulers/scheduling_deis_multistep.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,11 +273,15 @@ def set_timesteps(self, num_inference_steps: int, device: Union[str, torch.devic
273273
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas]).round()
274274
sigmas = np.concatenate([sigmas, sigmas[-1:]]).astype(np.float32)
275275
elif self.config.use_exponential_sigmas:
276+
sigmas = np.flip(sigmas).copy()
276277
sigmas = self._convert_to_exponential(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
277278
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas])
279+
sigmas = np.concatenate([sigmas, sigmas[-1:]]).astype(np.float32)
278280
elif self.config.use_beta_sigmas:
281+
sigmas = np.flip(sigmas).copy()
279282
sigmas = self._convert_to_beta(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
280283
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas])
284+
sigmas = np.concatenate([sigmas, sigmas[-1:]]).astype(np.float32)
281285
else:
282286
sigmas = np.interp(timesteps, np.arange(0, len(sigmas)), sigmas)
283287
sigma_last = ((1 - self.alphas_cumprod[0]) / self.alphas_cumprod[0]) ** 0.5

src/diffusers/schedulers/scheduling_dpmsolver_multistep.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,9 +400,11 @@ def set_timesteps(
400400
sigmas = np.exp(lambdas)
401401
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas]).round()
402402
elif self.config.use_exponential_sigmas:
403+
sigmas = np.flip(sigmas).copy()
403404
sigmas = self._convert_to_exponential(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
404405
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas])
405406
elif self.config.use_beta_sigmas:
407+
sigmas = np.flip(sigmas).copy()
406408
sigmas = self._convert_to_beta(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
407409
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas])
408410
else:

src/diffusers/schedulers/scheduling_dpmsolver_singlestep.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,9 +345,11 @@ def set_timesteps(
345345
sigmas = self._convert_to_karras(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
346346
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas]).round()
347347
elif self.config.use_exponential_sigmas:
348+
sigmas = np.flip(sigmas).copy()
348349
sigmas = self._convert_to_exponential(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
349350
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas])
350351
elif self.config.use_beta_sigmas:
352+
sigmas = np.flip(sigmas).copy()
351353
sigmas = self._convert_to_beta(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
352354
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas])
353355
else:

src/diffusers/schedulers/scheduling_sasolver.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,11 +302,15 @@ def set_timesteps(self, num_inference_steps: int = None, device: Union[str, torc
302302
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas]).round()
303303
sigmas = np.concatenate([sigmas, sigmas[-1:]]).astype(np.float32)
304304
elif self.config.use_exponential_sigmas:
305+
sigmas = np.flip(sigmas).copy()
305306
sigmas = self._convert_to_exponential(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
306307
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas])
308+
sigmas = np.concatenate([sigmas, sigmas[-1:]]).astype(np.float32)
307309
elif self.config.use_beta_sigmas:
310+
sigmas = np.flip(sigmas).copy()
308311
sigmas = self._convert_to_beta(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
309312
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas])
313+
sigmas = np.concatenate([sigmas, sigmas[-1:]]).astype(np.float32)
310314
else:
311315
sigmas = np.interp(timesteps, np.arange(0, len(sigmas)), sigmas)
312316
sigma_last = ((1 - self.alphas_cumprod[0]) / self.alphas_cumprod[0]) ** 0.5

src/diffusers/schedulers/scheduling_unipc_multistep.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -333,25 +333,29 @@ def set_timesteps(self, num_inference_steps: int, device: Union[str, torch.devic
333333

334334
sigmas = np.array(((1 - self.alphas_cumprod) / self.alphas_cumprod) ** 0.5)
335335
log_sigmas = np.log(sigmas)
336+
if self.config.final_sigmas_type == "sigma_min":
337+
sigma_last = sigmas[-1]
338+
elif self.config.final_sigmas_type == "zero":
339+
sigma_last = 0
340+
else:
341+
raise ValueError(
342+
f"`final_sigmas_type` must be one of 'zero', or 'sigma_min', but got {self.config.final_sigmas_type}"
343+
)
336344
if self.config.use_karras_sigmas:
337345
sigmas = np.flip(sigmas).copy()
338346
sigmas = self._convert_to_karras(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
339347
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas]).round()
340-
if self.config.final_sigmas_type == "sigma_min":
341-
sigma_last = sigmas[-1]
342-
elif self.config.final_sigmas_type == "zero":
343-
sigma_last = 0
344-
else:
345-
raise ValueError(
346-
f"`final_sigmas_type` must be one of 'zero', or 'sigma_min', but got {self.config.final_sigmas_type}"
347-
)
348348
sigmas = np.concatenate([sigmas, [sigma_last]]).astype(np.float32)
349349
elif self.config.use_exponential_sigmas:
350+
sigmas = np.flip(sigmas).copy()
350351
sigmas = self._convert_to_exponential(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
351352
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas])
353+
sigmas = np.concatenate([sigmas, [sigma_last]]).astype(np.float32)
352354
elif self.config.use_beta_sigmas:
355+
sigmas = np.flip(sigmas).copy()
353356
sigmas = self._convert_to_beta(in_sigmas=sigmas, num_inference_steps=num_inference_steps)
354357
timesteps = np.array([self._sigma_to_t(sigma, log_sigmas) for sigma in sigmas])
358+
sigmas = np.concatenate([sigmas, [sigma_last]]).astype(np.float32)
355359
else:
356360
sigmas = np.interp(timesteps, np.arange(0, len(sigmas)), sigmas)
357361
if self.config.final_sigmas_type == "sigma_min":

0 commit comments

Comments
 (0)