@@ -13,7 +13,7 @@ def lcm(a, b): #TODO: eventually replace by math.lcm (added in python3.9)
1313
1414#The main sampling function shared by all the samplers
1515#Returns predicted noise
16- def sampling_function (model_function , x , timestep , uncond , cond , cond_scale , cond_concat = None , model_options = {}):
16+ def sampling_function (model_function , x , timestep , uncond , cond , cond_scale , cond_concat = None , model_options = {}, seed = None ):
1717 def get_area_and_mult (cond , x_in , cond_concat_in , timestep_in ):
1818 area = (x_in .shape [2 ], x_in .shape [3 ], 0 , 0 )
1919 strength = 1.0
@@ -292,20 +292,20 @@ def __init__(self, model):
292292 super ().__init__ ()
293293 self .inner_model = model
294294 self .alphas_cumprod = model .alphas_cumprod
295- def apply_model (self , x , timestep , cond , uncond , cond_scale , cond_concat = None , model_options = {}):
296- out = sampling_function (self .inner_model .apply_model , x , timestep , uncond , cond , cond_scale , cond_concat , model_options = model_options )
295+ def apply_model (self , x , timestep , cond , uncond , cond_scale , cond_concat = None , model_options = {}, seed = None ):
296+ out = sampling_function (self .inner_model .apply_model , x , timestep , uncond , cond , cond_scale , cond_concat , model_options = model_options , seed = seed )
297297 return out
298298
299299
300300class KSamplerX0Inpaint (torch .nn .Module ):
301301 def __init__ (self , model ):
302302 super ().__init__ ()
303303 self .inner_model = model
304- def forward (self , x , sigma , uncond , cond , cond_scale , denoise_mask , cond_concat = None , model_options = {}):
304+ def forward (self , x , sigma , uncond , cond , cond_scale , denoise_mask , cond_concat = None , model_options = {}, seed = None ):
305305 if denoise_mask is not None :
306306 latent_mask = 1. - denoise_mask
307307 x = x * denoise_mask + (self .latent_image + self .noise * sigma .reshape ([sigma .shape [0 ]] + [1 ] * (len (self .noise .shape ) - 1 ))) * latent_mask
308- out = self .inner_model (x , sigma , cond = cond , uncond = uncond , cond_scale = cond_scale , cond_concat = cond_concat , model_options = model_options )
308+ out = self .inner_model (x , sigma , cond = cond , uncond = uncond , cond_scale = cond_scale , cond_concat = cond_concat , model_options = model_options , seed = seed )
309309 if denoise_mask is not None :
310310 out *= denoise_mask
311311
@@ -542,7 +542,7 @@ def set_steps(self, steps, denoise=None):
542542 sigmas = self .calculate_sigmas (new_steps ).to (self .device )
543543 self .sigmas = sigmas [- (steps + 1 ):]
544544
545- def sample (self , noise , positive , negative , cfg , latent_image = None , start_step = None , last_step = None , force_full_denoise = False , denoise_mask = None , sigmas = None , callback = None , disable_pbar = False ):
545+ def sample (self , noise , positive , negative , cfg , latent_image = None , start_step = None , last_step = None , force_full_denoise = False , denoise_mask = None , sigmas = None , callback = None , disable_pbar = False , seed = None ):
546546 if sigmas is None :
547547 sigmas = self .sigmas
548548 sigma_min = self .sigma_min
@@ -589,7 +589,7 @@ def sample(self, noise, positive, negative, cfg, latent_image=None, start_step=N
589589 if latent_image is not None :
590590 latent_image = self .model .process_latent_in (latent_image )
591591
592- extra_args = {"cond" :positive , "uncond" :negative , "cond_scale" : cfg , "model_options" : self .model_options }
592+ extra_args = {"cond" :positive , "uncond" :negative , "cond_scale" : cfg , "model_options" : self .model_options , "seed" : seed }
593593
594594 cond_concat = None
595595 if hasattr (self .model , 'concat_keys' ): #inpaint
0 commit comments