From cfc620a08a2a14e74341379f5d8905e33c069611 Mon Sep 17 00:00:00 2001 From: vladmandic Date: Mon, 5 Jan 2026 09:42:37 +0100 Subject: [PATCH] force align width/height to vae scale factor Signed-off-by: vladmandic --- CHANGELOG.md | 3 ++- modules/processing_args.py | 14 +++++++------- modules/sd_vae.py | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43b8fb62c..8c7b9e31b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log for SD.Next -## Update for 2025-01-04 +## Update for 2025-01-05 - **Models** - [Qwen-Image-2512](https://huggingface.co/Qwen/Qwen-Image-2512) @@ -27,6 +27,7 @@ - wildards with folder specification - z-image single-file loader - hip device name detection + - force align width/height to vae scale factor ## Update for 2025-12-26 diff --git a/modules/processing_args.py b/modules/processing_args.py index 869b1309e..10ad90ff8 100644 --- a/modules/processing_args.py +++ b/modules/processing_args.py @@ -49,12 +49,13 @@ def task_specific_kwargs(p, model): p.init_images = [helpers.decode_base64_to_image(i, quiet=True) for i in p.init_images] if isinstance(p.init_images[0], Image.Image): p.init_images = [i.convert('RGB') if i.mode != 'RGB' else i for i in p.init_images if i is not None] + p.width, p.height = processing_helpers.resize_init_images(p) if (task_type == sd_models.DiffusersTaskType.TEXT_2_IMAGE or len(getattr(p, 'init_images', [])) == 0) and not is_img2img_model and 'video' not in p.ops: p.ops.append('txt2img') if hasattr(p, 'width') and hasattr(p, 'height'): task_args = { - 'width': vae_scale_factor * math.ceil(p.width / vae_scale_factor), - 'height': vae_scale_factor * math.ceil(p.height / vae_scale_factor), + 'width': p.width, + 'height': p.height, } elif (task_type == sd_models.DiffusersTaskType.IMAGE_2_IMAGE or is_img2img_model) and len(getattr(p, 'init_images', [])) > 0: if shared.sd_model_type == 'sdxl' and hasattr(model, 'register_to_config'): @@ -93,8 +94,8 @@ def task_specific_kwargs(p, model): elif task_type == sd_models.DiffusersTaskType.INSTRUCT and len(getattr(p, 'init_images', [])) > 0: p.ops.append('instruct') task_args = { - 'width': vae_scale_factor * math.ceil(p.width / vae_scale_factor) if hasattr(p, 'width') else None, - 'height': vae_scale_factor * math.ceil(p.height / vae_scale_factor) if hasattr(p, 'height') else None, + 'width': p.width, + 'height': p.height, 'image': p.init_images, 'strength': p.denoising_strength, } @@ -108,7 +109,6 @@ def task_specific_kwargs(p, model): p.ops.append('detailer') else: p.ops.append('inpaint') - width, height = processing_helpers.resize_init_images(p) mask_image = p.task_args.get('image_mask', None) or getattr(p, 'image_mask', None) or getattr(p, 'mask', None) if p.vae_type == 'Remote': from modules.sd_vae_remote import remote_encode @@ -118,8 +118,8 @@ def task_specific_kwargs(p, model): 'image': p.init_images, 'mask_image': mask_image, 'strength': p.denoising_strength, - 'height': height, - 'width': width, + 'height': p.height, + 'width': p.width, } # model specific args diff --git a/modules/sd_vae.py b/modules/sd_vae.py index 246f52bb3..9c7255493 100644 --- a/modules/sd_vae.py +++ b/modules/sd_vae.py @@ -10,7 +10,7 @@ base_vae = None loaded_vae_file = None checkpoint_info = None vae_path = os.path.abspath(os.path.join(paths.models_path, 'VAE')) -debug = os.environ.get('SD_LOAD_DEBUG', None) is not None +debug = os.environ.get('SD_VAE_DEBUG', None) is not None unspecified = object() vae_scale_override = { 'WanPipeline': 16,