Variance Exploding
Variance Exploding diffusion model implementation.
This module implements the Variance Exploding diffusion model and its corresponding noise schedule, which is particularly effective for image generation tasks.
VarianceExploding
¶
Bases: BaseDiffusion
Variance Exploding diffusion model implementation.
This model implements diffusion using a variance exploding process, where the noise increases exponentially with time.
Attributes:
| Name | Type | Description |
|---|---|---|
NEEDS_NOISE_SCHEDULE |
Class constant indicating if a custom noise schedule is required. |
Source code in image_gen\diffusion\ve.py
__init__(*_, sigma=25.0, **__)
¶
Initialize the variance exploding diffusion model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sigma
|
float
|
Base sigma value for variance control. Defaults to 25.0. |
25.0
|
compute_loss(score, noise, t, *args, **kwargs)
¶
Compute loss between predicted score and actual noise.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
score
|
Tensor
|
Predicted score tensor. |
required |
noise
|
Tensor
|
Actual noise tensor. |
required |
t
|
Tensor
|
Time steps tensor. |
required |
*args
|
Any
|
Additional positional arguments. |
()
|
**kwargs
|
Any
|
Additional keyword arguments. |
{}
|
Returns:
| Type | Description |
|---|---|
Tensor
|
Loss tensor. |
Source code in image_gen\diffusion\ve.py
config()
¶
Get configuration parameters for the diffusion model.
Returns:
| Type | Description |
|---|---|
dict
|
Dictionary containing configuration parameters. |
forward_process(x0, t, *args, **kwargs)
¶
Apply the forward diffusion process.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x0
|
Tensor
|
Input tensor representing initial state. |
required |
t
|
Tensor
|
Time steps tensor. |
required |
*args
|
Any
|
Additional positional arguments. |
()
|
**kwargs
|
Any
|
Additional keyword arguments. |
{}
|
Returns:
| Type | Description |
|---|---|
Tuple[Tensor, Tensor]
|
Tuple of (noisy_sample, noise) tensors. |
Source code in image_gen\diffusion\ve.py
forward_sde(x, t, *_, **__)
¶
Calculate drift and diffusion for the forward SDE.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Tensor
|
Input tensor representing the current state. |
required |
t
|
Tensor
|
Time steps tensor. |
required |
Returns:
| Type | Description |
|---|---|
Tuple[Tensor, Tensor]
|
Tuple of (drift, diffusion) tensors. |
Source code in image_gen\diffusion\ve.py
VarianceExplodingSchedule
¶
Bases: BaseNoiseSchedule
Variance Exploding noise schedule.
This schedule models noise that increases exponentially over time, creating a "variance exploding" effect.
Attributes:
| Name | Type | Description |
|---|---|---|
sigma |
Base sigma value that controls the rate of variance explosion. |
Source code in image_gen\diffusion\ve.py
__call__(t, *_, **__)
¶
Calculate the noise magnitude at time t.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
t
|
Tensor
|
Time step tensor. |
required |
Returns:
| Type | Description |
|---|---|
Tensor
|
Tensor containing noise magnitudes at time t. |
Source code in image_gen\diffusion\ve.py
__init__(sigma, *_, **__)
¶
Initialize the variance exploding noise schedule.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sigma
|
float
|
Base sigma value for the schedule. |
required |
config()
¶
Get configuration parameters for the schedule.
Returns:
| Type | Description |
|---|---|
dict
|
Dictionary containing configuration parameters. |
integral_beta(t, *_, **__)
¶
Calculate the integrated noise intensity up to time t.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
t
|
Tensor
|
Time step tensor. |
required |
Returns:
| Type | Description |
|---|---|
Tensor
|
Tensor containing integrated noise values. |