diff --git a/fooocus_version.py b/fooocus_version.py index 6c95e238..91bb13bb 100644 --- a/fooocus_version.py +++ b/fooocus_version.py @@ -1 +1 @@ -version = '2.1.55' +version = '2.1.56' diff --git a/modules/default_pipeline.py b/modules/default_pipeline.py index bae48996..b76dd6fd 100644 --- a/modules/default_pipeline.py +++ b/modules/default_pipeline.py @@ -314,6 +314,8 @@ def calculate_sigmas(sampler, model, scheduler, steps, denoise): @torch.no_grad() @torch.inference_mode() def process_diffusion(positive_cond, negative_cond, steps, switch, width, height, image_seed, callback, sampler_name, scheduler_name, latent=None, denoise=1.0, tiled=False, cfg_scale=7.0, refiner_swap_method='joint'): + global final_unet, final_refiner_unet + assert refiner_swap_method in ['joint', 'separate', 'vae', 'upscale'] if final_refiner_unet is not None: @@ -321,6 +323,12 @@ def process_diffusion(positive_cond, negative_cond, steps, switch, width, height and refiner_swap_method != 'upscale': refiner_swap_method = 'vae' + if refiner_swap_method == 'vae' and denoise < 0.95: + # VAE swap only support full denoise + refiner_swap_method = 'joint' + # Disable refiner to avoid SD15 in joint swap + final_refiner_unet = None + print(f'[Sampler] refiner_swap_method = {refiner_swap_method}') if latent is None: