diff --git a/scripts/xyz_grid.py b/scripts/xyz_grid.py index 57ee47088cf..270c3f90e20 100644 --- a/scripts/xyz_grid.py +++ b/scripts/xyz_grid.py @@ -1,3 +1,4 @@ +import warnings from collections import namedtuple from copy import copy from itertools import permutations, chain @@ -106,6 +107,17 @@ def apply_upscale_latent_space(p, x, xs): opts.data["use_scale_latent_for_hires_fix"] = False +def apply_size(p, x: str, xs) -> None: + try: + width, _, height = x.partition('x') + width = int(width.strip()) + height = int(height.strip()) + p.width = width + p.height = height + except ValueError: + warnings.warn(f"Invalid size in XYZ plot: {x}") + + def find_vae(name: str): if name.lower() in ['auto', 'automatic']: return modules.sd_vae.unspecified @@ -271,6 +283,7 @@ def __init__(self, *args, **kwargs): AxisOption("Refiner switch at", float, apply_field('refiner_switch_at')), AxisOption("RNG source", str, apply_override("randn_source"), choices=lambda: ["GPU", "CPU", "NV"]), AxisOption("FP8 mode", str, apply_override("fp8_storage"), cost=0.9, choices=lambda: ["Disable", "Enable for SDXL", "Enable"]), + AxisOption("Size", str, apply_size), ]