Kohaku-Blueleaf
2023-05-24 20:35:58 +08:00
parent 1601fccebc
commit 4b88e24ebe
4 changed files with 39 additions and 20 deletions

View File

@@ -296,12 +296,6 @@ class KDiffusionSampler:
k_diffusion.sampling.torch = TorchHijack(self.sampler_noises if self.sampler_noises is not None else [])
if opts.k_sched_type != "Automatic":
p.extra_generation_params["KDiffusion Scheduler Type"] = opts.k_sched_type
p.extra_generation_params["KDiffusion Scheduler sigma_max"] = opts.sigma_max
p.extra_generation_params["KDiffusion Scheduler sigma_min"] = opts.sigma_min
p.extra_generation_params["KDiffusion Scheduler rho"] = opts.rho
extra_params_kwargs = {}
for param_name in self.extra_params:
if hasattr(p, param_name) and param_name in inspect.signature(self.func).parameters:
@@ -326,14 +320,27 @@ class KDiffusionSampler:
if p.sampler_noise_scheduler_override:
sigmas = p.sampler_noise_scheduler_override(steps)
elif opts.k_sched_type != "Automatic":
sigma_min, sigma_max = (0.1, 10) if opts.use_old_karras_scheduler_sigmas else (self.model_wrap.sigmas[0].item(), self.model_wrap.sigmas[-1].item())
sigmas_func = k_diffusion_scheduler[opts.k_sched_type]
m_sigma_min, m_sigma_max = (self.model_wrap.sigmas[0].item(), self.model_wrap.sigmas[-1].item())
sigma_min, sigma_max = (0.1, 10)
sigmas_kwargs = {
'sigma_min': opts.sigma_min or sigma_min,
'sigma_max': opts.sigma_max or sigma_max
'sigma_min': sigma_min if opts.use_old_karras_scheduler_sigmas else m_sigma_min,
'sigma_max': sigma_max if opts.use_old_karras_scheduler_sigmas else m_sigma_max
}
sigmas_func = k_diffusion_scheduler[opts.k_sched_type]
p.extra_generation_params["KDiff Sched Type"] = opts.k_sched_type
if opts.sigma_min != 0.3:
# take 0.0 as model default
sigmas_kwargs['sigma_min'] = opts.sigma_min or m_sigma_min
p.extra_generation_params["KDiff Sched min sigma"] = opts.sigma_min
if opts.sigma_max != 14.6:
sigmas_kwargs['sigma_max'] = opts.sigma_max or m_sigma_max
p.extra_generation_params["KDiff Sched max sigma"] = opts.sigma_max
if opts.k_sched_type != 'exponential':
sigmas_kwargs['rho'] = opts.rho
p.extra_generation_params["KDiff Sched rho"] = opts.rho
sigmas = sigmas_func(n=steps, **sigmas_kwargs, device=shared.device)
elif self.config is not None and self.config.options.get('scheduler', None) == 'karras':
sigma_min, sigma_max = (0.1, 10) if opts.use_old_karras_scheduler_sigmas else (self.model_wrap.sigmas[0].item(), self.model_wrap.sigmas[-1].item())