(
*,
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="",
)
| 394 | |
| 395 | |
| 396 | def create_gaussian_diffusion( |
| 397 | *, |
| 398 | steps=1000, |
| 399 | learn_sigma=False, |
| 400 | sigma_small=False, |
| 401 | noise_schedule="linear", |
| 402 | use_kl=False, |
| 403 | predict_xstart=False, |
| 404 | rescale_timesteps=False, |
| 405 | rescale_learned_sigmas=False, |
| 406 | timestep_respacing="", |
| 407 | ): |
| 408 | betas = gd.get_named_beta_schedule(noise_schedule, steps) |
| 409 | if use_kl: |
| 410 | loss_type = gd.LossType.RESCALED_KL |
| 411 | elif rescale_learned_sigmas: |
| 412 | loss_type = gd.LossType.RESCALED_MSE |
| 413 | else: |
| 414 | loss_type = gd.LossType.MSE |
| 415 | if not timestep_respacing: |
| 416 | timestep_respacing = [steps] |
| 417 | return SpacedDiffusion( |
| 418 | use_timesteps=space_timesteps(steps, timestep_respacing), |
| 419 | betas=betas, |
| 420 | model_mean_type=( |
| 421 | gd.ModelMeanType.EPSILON if not predict_xstart else gd.ModelMeanType.START_X |
| 422 | ), |
| 423 | model_var_type=( |
| 424 | ( |
| 425 | gd.ModelVarType.FIXED_LARGE |
| 426 | if not sigma_small |
| 427 | else gd.ModelVarType.FIXED_SMALL |
| 428 | ) |
| 429 | if not learn_sigma |
| 430 | else gd.ModelVarType.LEARNED_RANGE |
| 431 | ), |
| 432 | loss_type=loss_type, |
| 433 | rescale_timesteps=rescale_timesteps, |
| 434 | ) |
| 435 | |
| 436 | |
| 437 | def add_dict_to_argparser(parser, default_dict): |
no test coverage detected