(
*,
steps=1000,
learn_sigma=False,
sigma_small=False,
noise_schedule="linear",
use_kl=False,
predict_xstart=False,
rescale_timesteps=False,
rescale_learned_sigmas=False,
timestep_respacing="",
)
| 228 | |
| 229 | |
| 230 | def create_gaussian_diffusion( |
| 231 | *, |
| 232 | steps=1000, |
| 233 | learn_sigma=False, |
| 234 | sigma_small=False, |
| 235 | noise_schedule="linear", |
| 236 | use_kl=False, |
| 237 | predict_xstart=False, |
| 238 | rescale_timesteps=False, |
| 239 | rescale_learned_sigmas=False, |
| 240 | timestep_respacing="", |
| 241 | ): |
| 242 | betas = gd.get_named_beta_schedule(noise_schedule, steps) |
| 243 | if use_kl: |
| 244 | loss_type = gd.LossType.RESCALED_KL |
| 245 | elif rescale_learned_sigmas: |
| 246 | loss_type = gd.LossType.RESCALED_MSE |
| 247 | else: |
| 248 | loss_type = gd.LossType.MSE |
| 249 | if not timestep_respacing: |
| 250 | timestep_respacing = [steps] |
| 251 | return SpacedDiffusion( |
| 252 | use_timesteps=space_timesteps(steps, timestep_respacing), |
| 253 | betas=betas, |
| 254 | model_mean_type=( |
| 255 | gd.ModelMeanType.EPSILON if not predict_xstart else gd.ModelMeanType.START_X |
| 256 | ), |
| 257 | model_var_type=( |
| 258 | ( |
| 259 | gd.ModelVarType.FIXED_LARGE |
| 260 | if not sigma_small |
| 261 | else gd.ModelVarType.FIXED_SMALL |
| 262 | ) |
| 263 | if not learn_sigma |
| 264 | else gd.ModelVarType.LEARNED_RANGE |
| 265 | ), |
| 266 | loss_type=loss_type, |
| 267 | rescale_timesteps=rescale_timesteps, |
| 268 | ) |
| 269 | |
| 270 | |
| 271 | def add_dict_to_argparser(parser, default_dict): |
no test coverage detected