|
@@ -207,7 +207,7 @@ def create_random_tensors(shape, seeds, subseeds=None, subseed_strength=0.0, see
|
|
|
# enables the generation of additional tensors with noise that the sampler will use during its processing.
|
|
|
# Using those pre-generated tensors instead of simple torch.randn allows a batch with seeds [100, 101] to
|
|
|
# produce the same images as with two batches [100], [101].
|
|
|
- if p is not None and p.sampler is not None and len(seeds) > 1 and opts.enable_batch_seeds:
|
|
|
+ if p is not None and p.sampler is not None and (len(seeds) > 1 and opts.enable_batch_seeds or opts.eta_noise_seed_delta > 0):
|
|
|
sampler_noises = [[] for _ in range(p.sampler.number_of_needed_noises(p))]
|
|
|
else:
|
|
|
sampler_noises = None
|
|
@@ -247,6 +247,9 @@ def create_random_tensors(shape, seeds, subseeds=None, subseed_strength=0.0, see
|
|
|
if sampler_noises is not None:
|
|
|
cnt = p.sampler.number_of_needed_noises(p)
|
|
|
|
|
|
+ if opts.eta_noise_seed_delta > 0:
|
|
|
+ torch.manual_seed(seed + opts.eta_noise_seed_delta)
|
|
|
+
|
|
|
for j in range(cnt):
|
|
|
sampler_noises[j].append(devices.randn_without_seed(tuple(noise_shape)))
|
|
|
|
|
@@ -301,6 +304,7 @@ def create_infotext(p, all_prompts, all_seeds, all_subseeds, comments, iteration
|
|
|
"Denoising strength": getattr(p, 'denoising_strength', None),
|
|
|
"Eta": (None if p.sampler is None or p.sampler.eta == p.sampler.default_eta else p.sampler.eta),
|
|
|
"Clip skip": None if clip_skip <= 1 else clip_skip,
|
|
|
+ "ENSD": None if opts.eta_noise_seed_delta == 0 else opts.eta_noise_seed_delta,
|
|
|
}
|
|
|
|
|
|
generation_params.update(p.extra_generation_params)
|