mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
revert to original k* noise schedule
This commit is contained in:
parent
feb405f19a
commit
7a3eae4572
@ -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,
|
||||
|
@ -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(
|
||||
@ -53,17 +54,19 @@ class KSampler(Sampler):
|
||||
ddim_eta=0.0,
|
||||
verbose=False,
|
||||
)
|
||||
self.model = outer_model
|
||||
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,
|
||||
|
Loading…
Reference in New Issue
Block a user