From c374e3ada0436b3e6849bfbdd04befede4e45d22 Mon Sep 17 00:00:00 2001 From: ssitu Date: Wed, 4 Feb 2026 17:23:39 -0500 Subject: [PATCH] test: add test for force_uniform_tiles=False --- test/fixtures_images.py | 4 +-- test/test_settings.py | 69 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 test/test_settings.py diff --git a/test/fixtures_images.py b/test/fixtures_images.py index fba5fe7..deb3c0a 100644 --- a/test/fixtures_images.py +++ b/test/fixtures_images.py @@ -32,9 +32,7 @@ def base_image(loaded_checkpoint, seed, test_dirs: DirectoryConfig, node_classes model, clip, vae = loaded_checkpoint with torch.inference_mode(): - (empty_latent,) = execute( - EmptyLatentImage, width=512, height=512, batch_size=2 - ) + (empty_latent,) = execute(EmptyLatentImage, width=512, height=512, batch_size=2) (positive,) = execute( CLIPTextEncode, diff --git a/test/test_settings.py b/test/test_settings.py new file mode 100644 index 0000000..84641ac --- /dev/null +++ b/test/test_settings.py @@ -0,0 +1,69 @@ +""" +Test for other settings included in the upscaling nodes. +""" + +import logging +import pathlib +import pytest +import torch + +from tensor_utils import img_tensor_mae, blur +from io_utils import save_image, load_image +from configs import DirectoryConfig +from fixtures_images import EXT + +# Image file names +CATEGORY = pathlib.Path(pathlib.Path(__file__).stem.removeprefix("test_")) + + +def test_minimal_tile_sizes( + base_image, loaded_checkpoint, node_classes, seed, test_dirs: DirectoryConfig +): + """Test upscaling with minimal tile sizes.""" + filename = "non_uniform_tiles" + image, positive, negative = base_image + model, clip, vae = loaded_checkpoint + + with torch.inference_mode(): + usdu = node_classes["UltimateSDUpscale"] + (upscaled,) = usdu().upscale( + image=image[0:1], + model=model, + positive=positive, + negative=negative, + vae=vae, + upscale_by=1.5, + seed=seed, + steps=5, + cfg=8, + sampler_name="euler", + scheduler="normal", + denoise=0.15, + upscale_model=None, + mode_type="Chess", + tile_width=512, + tile_height=512, + mask_blur=8, + tile_padding=8, + seam_fix_mode="None", + seam_fix_denoise=1.0, + seam_fix_width=16, + seam_fix_mask_blur=8, + seam_fix_padding=4, + force_uniform_tiles=False, + tiled_decode=False, + ) + + # Save and reload sample image + sample_dir = test_dirs.sample_images + filename_path = CATEGORY / (filename + EXT) + save_image(upscaled[0], sample_dir / filename_path) + upscaled = load_image(sample_dir / filename_path) + + # Compare with reference + test_image_dir = test_dirs.test_images + test_image = load_image(test_image_dir / filename_path) + diff = img_tensor_mae(blur(upscaled), blur(test_image)) + logger = logging.getLogger(__name__) + logger.info(f"{filename} MAE: {diff}") + assert diff < 0.05, f"{filename} output doesn't match reference"