MCPcopy Create free account
hub / github.com/294coder/Dif-PAN / inverse

Method inverse

solver/dpm_solver.py:1040–1053  ·  view source on GitHub ↗

Inverse the sample `x` from time `t_start` to `t_end` by DPM-Solver. For discrete-time DPMs, we use `t_start=1/N`, where `N` is the total time steps during training.

(self, x, steps=20, t_start=None, t_end=None, order=2, skip_type='time_uniform',
        method='multistep', lower_order_final=True, denoise_to_zero=False, solver_type='dpmsolver',
        atol=0.0078, rtol=0.05, return_intermediate=False,
    )

Source from the content-addressed store, hash-verified

1038 return xt
1039
1040 def inverse(self, x, steps=20, t_start=None, t_end=None, order=2, skip_type='time_uniform',
1041 method='multistep', lower_order_final=True, denoise_to_zero=False, solver_type='dpmsolver',
1042 atol=0.0078, rtol=0.05, return_intermediate=False,
1043 ):
1044 """
1045 Inverse the sample `x` from time `t_start` to `t_end` by DPM-Solver.
1046 For discrete-time DPMs, we use `t_start=1/N`, where `N` is the total time steps during training.
1047 """
1048 t_0 = 1. / self.noise_schedule.total_N if t_start is None else t_start
1049 t_T = self.noise_schedule.T if t_end is None else t_end
1050 assert t_0 > 0 and t_T > 0, "Time range needs to be greater than 0. For discrete-time DPMs, it needs to be in [1 / N, 1], where N is the length of betas array"
1051 return self.sample(x, steps=steps, t_start=t_0, t_end=t_T, order=order, skip_type=skip_type,
1052 method=method, lower_order_final=lower_order_final, denoise_to_zero=denoise_to_zero, solver_type=solver_type,
1053 atol=atol, rtol=rtol, return_intermediate=return_intermediate)
1054
1055 def sample(self, x, steps=20, t_start=None, t_end=None, order=2, skip_type='time_uniform',
1056 method='multistep', lower_order_final=True, denoise_to_zero=False, solver_type='dpmsolver',

Callers

nothing calls this directly

Calls 1

sampleMethod · 0.95

Tested by

no test coverage detected