MCPcopy Create free account
hub / github.com/Meshcapade/difflocks / sample_dpm_adaptive

Function sample_dpm_adaptive

k_diffusion/sampling.py:494–505  ·  view source on GitHub ↗

DPM-Solver-12 and 23 (adaptive step size). See https://arxiv.org/abs/2206.00927.

(model, x, sigma_min, sigma_max, extra_args=None, callback=None, disable=None, order=3, rtol=0.05, atol=0.0078, h_init=0.05, pcoeff=0., icoeff=1., dcoeff=0., accept_safety=0.81, eta=0., s_noise=1., noise_sampler=None, return_info=False)

Source from the content-addressed store, hash-verified

492
493@torch.no_grad()
494def sample_dpm_adaptive(model, x, sigma_min, sigma_max, extra_args=None, callback=None, disable=None, order=3, rtol=0.05, atol=0.0078, h_init=0.05, pcoeff=0., icoeff=1., dcoeff=0., accept_safety=0.81, eta=0., s_noise=1., noise_sampler=None, return_info=False):
495 """DPM-Solver-12 and 23 (adaptive step size). See https://arxiv.org/abs/2206.00927."""
496 if sigma_min <= 0 or sigma_max <= 0:
497 raise ValueError('sigma_min and sigma_max must not be 0')
498 with tqdm(disable=disable) as pbar:
499 dpm_solver = DPMSolver(model, extra_args, eps_callback=pbar.update)
500 if callback is not None:
501 dpm_solver.info_callback = lambda info: callback({'sigma': dpm_solver.sigma(info['t']), 'sigma_hat': dpm_solver.sigma(info['t_up']), **info})
502 x, info = dpm_solver.dpm_solver_adaptive(x, dpm_solver.t(torch.tensor(sigma_max)), dpm_solver.t(torch.tensor(sigma_min)), order, rtol, atol, h_init, pcoeff, icoeff, dcoeff, accept_safety, eta, s_noise, noise_sampler)
503 if return_info:
504 return x, info
505 return x
506
507
508@torch.no_grad()

Callers

nothing calls this directly

Calls 4

sigmaMethod · 0.95
dpm_solver_adaptiveMethod · 0.95
tMethod · 0.95
DPMSolverClass · 0.85

Tested by

no test coverage detected