diff options
author | brkirch <brkirch@users.noreply.github.com> | 2023-01-24 03:49:20 +0000 |
---|---|---|
committer | brkirch <brkirch@users.noreply.github.com> | 2023-01-24 03:49:20 +0000 |
commit | f64af77adcd20fabe00e1e642512db9c6742ed23 (patch) | |
tree | e83c555723fcaca303ef25bc88c8ee7bfbfea850 /modules/processing.py | |
parent | 5c1cb9263f980641007088a37360fcab01761d37 (diff) | |
download | stable-diffusion-webui-gfx803-f64af77adcd20fabe00e1e642512db9c6742ed23.tar.gz stable-diffusion-webui-gfx803-f64af77adcd20fabe00e1e642512db9c6742ed23.tar.bz2 stable-diffusion-webui-gfx803-f64af77adcd20fabe00e1e642512db9c6742ed23.zip |
Fix different first gen with Approx NN previews
The loading of the model for approx nn live previews can change the internal state of PyTorch, resulting in a different image. This can be avoided by preloading the approx nn model in advance.
Diffstat (limited to 'modules/processing.py')
-rw-r--r-- | modules/processing.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/modules/processing.py b/modules/processing.py index bc541e2f..3bd590ba 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -13,7 +13,7 @@ from skimage import exposure from typing import Any, Dict, List, Optional
import modules.sd_hijack
-from modules import devices, prompt_parser, masking, sd_samplers, lowvram, generation_parameters_copypaste, script_callbacks, extra_networks
+from modules import devices, prompt_parser, masking, sd_samplers, lowvram, generation_parameters_copypaste, script_callbacks, extra_networks, sd_vae_approx
from modules.sd_hijack import model_hijack
from modules.shared import opts, cmd_opts, state
import modules.shared as shared
@@ -568,6 +568,10 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: with devices.autocast():
p.init(p.all_prompts, p.all_seeds, p.all_subseeds)
+ if shared.opts.live_previews_enable and sd_samplers.approximation_indexes.get(shared.opts.show_progress_type, 0) == 1:
+ # preload approx nn model before sampling for a more deterministic result
+ sd_vae_approx.model()
+
if not p.disable_extra_networks:
extra_networks.activate(p, extra_network_data)
|