kohya-ss/sd-scripts

Shouldn't fix_noise_scheduler_betas_for_zero_terminal_snr be applied BEFORE prepare_scheduler_for_custom_training?

Open

#1,905 opened on Jan 27, 2025

 (2 comments) (0 reactions) (0 assignees)Python (1,218 forks)batch import
help wanted

Repository metrics

Stars
 (7,198 stars)
PR merge metrics
 (Avg merge 18h 39m) (16 merged PRs in 30d)

Description

Hello,

Reference code: https://github.com/kohya-ss/sd-scripts/blob/0778dd9b1df0d6aa33287ded3ce4195f3d03251b/train_network.py#L195

I noticed that fix_noise_scheduler_betas_for_zero_terminal_snr modifies the alphas_cumprod for the noise scheduler, and prepare_scheduler_for_custom_training uses alphas_cumprod to calculate all_snr. The issue with the current order is that all_snr will reflect NON-ztsnr snrs, not ztsnr, causing anything that uses all_snr to use snrs that do not align with ztsnr.

As such, shouldn't fix_noise_scheduler_betas_for_zero_terminal_snr always be applied before prepare_scheduler_for_custom_training?

Thank you.

Contributor guide