Prevent lycoris network moduels if not training that part of network. Skew timesteps to favor later steps. It performs better

This commit is contained in:
Jaret Burkett
2023-09-14 15:13:24 -06:00
parent 569d7464d5
commit 17e4fe40d7
2 changed files with 29 additions and 9 deletions

View File

@@ -437,6 +437,19 @@ class BaseSDTrainProcess(BaseTrainProcess):
else:
min_timestep = self.train_config.min_denoising_steps
# todo improve this, but is skews odds for higher timesteps
# 50% chance to use midpoint as the min_time_step
mid_point = (self.train_config.max_denoising_steps + min_timestep) / 2
if torch.rand(1) > 0.5:
min_timestep = mid_point
# 50% chance to use midpoint as the min_time_step
mid_point = (self.train_config.max_denoising_steps + min_timestep) / 2
if torch.rand(1) > 0.5:
min_timestep = mid_point
min_timestep = int(min_timestep)
timesteps = torch.randint(
min_timestep,
self.train_config.max_denoising_steps,