revert to original k* noise schedule

This commit is contained in:
Lincoln Stein 2022-10-04 17:48:16 -04:00 committed by Any-Winter-4079
parent feb405f19a
commit 7a3eae4572
2 changed files with 16 additions and 12 deletions

View File

@ -31,7 +31,7 @@ class Txt2Img(Generator):
if self.free_gpu_mem and self.model.model.device != self.model.device:
self.model.model.to(self.model.device)
sampler.make_schedule(ddim_num_steps=steps, ddim_eta=ddim_eta, verbose=True)
sampler.make_schedule(ddim_num_steps=steps, ddim_eta=ddim_eta, verbose=False)
samples, _ = sampler.sample(
batch_size = 1,

View File

@ -45,6 +45,7 @@ class KSampler(Sampler):
ddim_eta=0.0,
verbose=False,
):
ddim_num_steps += 1
outer_model = self.model
self.model = outer_model.inner_model
super().make_schedule(
@ -55,15 +56,17 @@ class KSampler(Sampler):
)
self.model = outer_model
self.ddim_num_steps = ddim_num_steps
sigmas = K.sampling.get_sigmas_karras(
n=ddim_num_steps,
sigma_min=self.model.sigmas[0].item(),
sigma_max=self.model.sigmas[-1].item(),
rho=7.,
device=self.device,
# Birch-san recommends this, but it doesn't match the call signature in his branch of k-diffusion
# concat_zero=False
)
# not working quite right
# sigmas = K.sampling.get_sigmas_karras(
# n=ddim_num_steps,
# sigma_min=self.model.sigmas[0].item(),
# sigma_max=self.model.sigmas[-1].item(),
# rho=7.,
# device=self.device,
# # Birch-san recommends this, but it doesn't match the call signature in his branch of k-diffusion
# # concat_zero=False
# )
sigmas = self.model.get_sigmas(ddim_num_steps)
self.sigmas = sigmas
# ALERT: We are completely overriding the sample() method in the base class, which
@ -99,6 +102,7 @@ class KSampler(Sampler):
# this has to come in the same format as the conditioning, # e.g. as encoded tokens, ...
**kwargs,
):
S += 1
def route_callback(k_callback_values):
if img_callback is not None:
img_callback(k_callback_values['x'],k_callback_values['i'])
@ -119,7 +123,7 @@ class KSampler(Sampler):
'uncond': unconditional_conditioning,
'cond_scale': unconditional_guidance_scale,
}
print(f'>> Sampling with k__{self.schedule}')
print(f'>> Sampling with k_{self.schedule}')
return (
K.sampling.__dict__[f'sample_{self.schedule}'](
model_wrap_cfg, x, sigmas, extra_args=extra_args,