Text-to-Image
Diffusers
MrFlow / mrflow_utils.py
Xingyu-Zheng's picture
Upload 31 files
e8a7157 verified
Raw
History Blame Contribute Delete
879 Bytes
from contextlib import contextmanager
from types import MethodType
import torch
@contextmanager
def direct_sigma_schedule(scheduler, first_sigma, steps, device):
original = scheduler.set_timesteps
force_device = device
def set_timesteps(self, sigmas=None, device=None, **kwargs):
_ = sigmas
target_device = device or force_device
sigmas = torch.linspace(first_sigma, 0.0, steps + 1, device=target_device)
self.num_inference_steps = steps
self.timesteps = sigmas[:-1] * self.config.num_train_timesteps
self.sigmas = sigmas
self._step_index = None
self._begin_index = None
if hasattr(self, "set_begin_index"):
self.set_begin_index(0)
scheduler.set_timesteps = MethodType(set_timesteps, scheduler)
try:
yield
finally:
scheduler.set_timesteps = original