Files
ssitu-ComfyUI_UltimateSDUps…/test/test_settings.py
T

70 lines
2.1 KiB
Python

"""
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"