Fix initial noise standard deviation #263
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
prepare_sampling_loop
in diffusionmodules/sampling.py currently initializes the initial noise with standard deviationsqrt(1+sigma^2)
. However, according to the EDM paper [1], the initial noise standard deviation should just be sigma. (See line 2 of Algorithm 2 of "Elucidating the Design Space of Diffusion-Based Generative Models".) This pull request fixes the issue.I tested the change using the code below:
Below are the results. Note that after the fix, there are several improvements:
This is the only test I bothered trying. More tests/checks may be warranted...
Before the fix:

After the fix:
