diffengine.models.utils¶
Submodules¶
Package Contents¶
Classes¶
Offset noise module. |
|
Pyramid noise module. |
|
White noise module. |
|
Cubic Sampling Time Steps module. |
|
DDIM Time Steps module. |
|
Earlier biased Time Steps module. |
|
Later biased Time Steps module. |
|
Range biased Time Steps module. |
|
Time Steps module. |
|
Wuerstchen Random Time Steps module. |
- class diffengine.models.utils.OffsetNoise(offset_weight=0.05)[source]¶
Bases:
torch.nn.ModuleOffset noise module.
https://www.crosslabs.org/blog/diffusion-with-offset-noise
Args:¶
offset_weight (float): Noise offset weight. Defaults to 0.05.
- Parameters:
offset_weight (float) –
- class diffengine.models.utils.PyramidNoise(discount=0.9, *, random_multiplier=True)[source]¶
Bases:
torch.nn.ModulePyramid noise module.
https://wandb.ai/johnowhitaker/multires_noise/reports/ Multi-Resolution-Noise-for-Diffusion-Model-Training–VmlldzozNjYyOTU2
Args:¶
discount (float): Noise offset weight. Defaults to 0.9. random_multiplier (bool): Whether to use random multiplier.
Defaults to True.
- Parameters:
discount (float) –
random_multiplier (bool) –
- class diffengine.models.utils.WhiteNoise(*args, **kwargs)[source]¶
Bases:
torch.nn.ModuleWhite noise module.
- class diffengine.models.utils.CubicSamplingTimeSteps(*args, **kwargs)[source]¶
Bases:
torch.nn.ModuleCubic Sampling Time Steps module.
For more details about why cubic sampling is used, refer to section 3.4 of https://arxiv.org/abs/2302.08453
- forward(scheduler, num_batches, device)[source]¶
Forward pass.
Generates time steps for the given batches.
Args:¶
scheduler (DDPMScheduler): Scheduler for training diffusion model. num_batches (int): Batch size. device (str): Device.
- Parameters:
scheduler (diffusers.DDPMScheduler) –
num_batches (int) –
device (str) –
- Return type:
torch.Tensor
- class diffengine.models.utils.DDIMTimeSteps(num_ddim_timesteps=50)[source]¶
Bases:
torch.nn.ModuleDDIM Time Steps module.
Args:¶
num_ddim_timesteps (int): Number of DDIM timesteps. Defaults to 50.
- forward(scheduler, num_batches, device)[source]¶
Forward pass.
Generates time steps for the given batches.
Args:¶
scheduler (DDPMScheduler): Scheduler for training diffusion model. num_batches (int): Batch size. device (str): Device.
- Parameters:
scheduler (diffusers.DDPMScheduler) –
num_batches (int) –
device (str) –
- Return type:
torch.Tensor
- Parameters:
num_ddim_timesteps (int) –
- class diffengine.models.utils.EarlierTimeSteps(bias_multiplier=5.0, bias_portion=0.25)[source]¶
Bases:
torch.nn.ModuleEarlier biased Time Steps module.
Args:¶
bias_multiplier (float): Bias multiplier. Defaults to 10. bias_portion (float): Portion of earlier time steps to bias.
Defaults to 0.25.
- forward(scheduler, num_batches, device)[source]¶
Forward pass.
Generates time steps for the given batches.
Args:¶
scheduler (DDPMScheduler): Scheduler for training diffusion model. num_batches (int): Batch size. device (str): Device.
- Parameters:
scheduler (diffusers.DDPMScheduler) –
num_batches (int) –
device (str) –
- Return type:
torch.Tensor
- Parameters:
bias_multiplier (float) –
bias_portion (float) –
- class diffengine.models.utils.LaterTimeSteps(bias_multiplier=5.0, bias_portion=0.25)[source]¶
Bases:
torch.nn.ModuleLater biased Time Steps module.
Args:¶
bias_multiplier (float): Bias multiplier. Defaults to 10. bias_portion (float): Portion of later time steps to bias.
Defaults to 0.25.
- forward(scheduler, num_batches, device)[source]¶
Forward pass.
Generates time steps for the given batches.
Args:¶
scheduler (DDPMScheduler): Scheduler for training diffusion model. num_batches (int): Batch size. device (str): Device.
- Parameters:
scheduler (diffusers.DDPMScheduler) –
num_batches (int) –
device (str) –
- Return type:
torch.Tensor
- Parameters:
bias_multiplier (float) –
bias_portion (float) –
- class diffengine.models.utils.RangeTimeSteps(bias_multiplier=5.0, bias_begin=0.25, bias_end=0.75)[source]¶
Bases:
torch.nn.ModuleRange biased Time Steps module.
Args:¶
bias_multiplier (float): Bias multiplier. Defaults to 10. bias_begin (float): Portion of begin time steps to bias.
Defaults to 0.25.
- bias_end (float): Portion of end time steps to bias.
Defaults to 0.75.
- forward(scheduler, num_batches, device)[source]¶
Forward pass.
Generates time steps for the given batches.
Args:¶
scheduler (DDPMScheduler): Scheduler for training diffusion model. num_batches (int): Batch size. device (str): Device.
- Parameters:
scheduler (diffusers.DDPMScheduler) –
num_batches (int) –
device (str) –
- Return type:
torch.Tensor
- Parameters:
bias_multiplier (float) –
bias_begin (float) –
bias_end (float) –
- class diffengine.models.utils.TimeSteps(*args, **kwargs)[source]¶
Bases:
torch.nn.ModuleTime Steps module.
- forward(scheduler, num_batches, device)[source]¶
Forward pass.
Generates time steps for the given batches.
Args:¶
scheduler (DDPMScheduler): Scheduler for training diffusion model. num_batches (int): Batch size. device (str): Device.
- Parameters:
scheduler (diffusers.DDPMScheduler) –
num_batches (int) –
device (str) –
- Return type:
torch.Tensor