File tree Expand file tree Collapse file tree 1 file changed +5
-1
lines changed Expand file tree Collapse file tree 1 file changed +5
-1
lines changed Original file line number Diff line number Diff line change @@ -319,7 +319,11 @@ def step(
319
319
prev_unknown_part = alpha_prod_t_prev ** 0.5 * pred_original_sample + pred_sample_direction + variance
320
320
321
321
# 8. Algorithm 1 Line 5 https://arxiv.org/pdf/2201.09865.pdf
322
- prev_known_part = (alpha_prod_t_prev ** 0.5 ) * original_image + (1 - alpha_prod_t_prev ) * noise
322
+ # The computation reported in Algorithm 1 Line 5 is incorrect. Line 5 refers to formula (8a) of the same paper,
323
+ # which tells to sample from a Gaussian distribution with mean "(alpha_prod_t_prev**0.5) * original_image"
324
+ # and variance "(1 - alpha_prod_t_prev)". This means that the standard Gaussian distribution "noise" should be
325
+ # scaled by the square root of the variance (as it is done here), however Algorithm 1 Line 5 tells to scale by the variance.
326
+ prev_known_part = (alpha_prod_t_prev ** 0.5 ) * original_image + ((1 - alpha_prod_t_prev ) ** 0.5 ) * noise
323
327
324
328
# 9. Algorithm 1 Line 8 https://arxiv.org/pdf/2201.09865.pdf
325
329
pred_prev_sample = mask * prev_known_part + (1.0 - mask ) * prev_unknown_part
You can’t perform that action at this time.
0 commit comments