From da66fe76067fa24479f8300f3068428b10fe7b0b Mon Sep 17 00:00:00 2001 From: JerryOrbachJr Date: Sun, 11 Feb 2024 23:14:11 -0500 Subject: [PATCH] Move to preset files --- random_size.py | 31 +++++++++++++++++++++--------- sizes.yaml | 22 --------------------- sizes/1024.yaml | 18 +++++++++++++++++ sizes/512.yaml | 10 ++++++++++ sizes/640.yaml | 10 ++++++++++ sizes/768.yaml | 14 ++++++++++++++ sizes/896.yaml | 16 +++++++++++++++ sizes/SD1.5.yaml | 10 ++++++++++ sizes/SDXL.yaml | 10 ++++++++++ sizes/custom/put_your_presets_here | 0 10 files changed, 110 insertions(+), 31 deletions(-) delete mode 100644 sizes.yaml create mode 100644 sizes/1024.yaml create mode 100644 sizes/512.yaml create mode 100644 sizes/640.yaml create mode 100644 sizes/768.yaml create mode 100644 sizes/896.yaml create mode 100644 sizes/SD1.5.yaml create mode 100644 sizes/SDXL.yaml create mode 100644 sizes/custom/put_your_presets_here diff --git a/random_size.py b/random_size.py index 1a5928a..f6db2e8 100644 --- a/random_size.py +++ b/random_size.py @@ -1,23 +1,36 @@ import yaml, os, random -module_root_directory = os.path.dirname(os.path.realpath(__file__)) -config_file = os.path.join(module_root_directory,'sizes.yaml') -# TODO: make inputs? -def read_config(item): - with open(config_file, 'r') as file: - return yaml.safe_load(file)[item] +sizes_dir = os.path.join(os.path.dirname(__file__), "sizes") +sizes_dir = os.path.abspath(sizes_dir) + +def read_config(preset_file): + if preset_file == "Preset": + preset_file_path = os.path.join(sizes_dir,"SD1.5.yaml") + else: + preset_file_path = os.path.join(sizes_dir,preset_file) + with open( preset_file_path, 'r') as file: + return yaml.safe_load(file)['sizes'] + +def load_presets(): + preset_list = [file for file in os.listdir(sizes_dir) if file.endswith(".yaml")] + return preset_list class RandomSize: CATEGORY = "utils" @classmethod def INPUT_TYPES(cls): + preset = ["Preset"] # 20 + preset += load_presets() return { - "required": { "seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}) }, + "required": { + "seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}), + "preset": (preset,) + }, } RETURN_TYPES = ("INT","INT") RETURN_NAMES = ("width","height") FUNCTION = "func" - def func(self:str,seed): - sizes = read_config('sizes') + def func(self:str,seed, preset): + sizes = read_config(preset) rand_obj = random.Random(seed) size = rand_obj.choice(sizes) x, y = [int(v) for v in size.split('x')] diff --git a/sizes.yaml b/sizes.yaml deleted file mode 100644 index 6294ae2..0000000 --- a/sizes.yaml +++ /dev/null @@ -1,22 +0,0 @@ -sizes: -- 512x512 -- 512x768 -- 640x768 -- 512x1024 -- 640x640 -- 640x896 -- 768x512 -- 768x640 -- 768x768 -- 768x1024 -- 1024x512 -- 1024x768 -- 640x1536 -- 768x1344 -- 832x1216 -- 840x1176 -- 896x1152 -- 960x1088 -- 1024x1024 -- 1216x832 -- 1344x768 \ No newline at end of file diff --git a/sizes/1024.yaml b/sizes/1024.yaml new file mode 100644 index 0000000..736ceef --- /dev/null +++ b/sizes/1024.yaml @@ -0,0 +1,18 @@ +sizes: +- 512x2048 +- 576x1792 +- 640x1600 +- 704x1472 +- 768x1344 +- 832x1216 +- 896x1152 +- 960x1088 +- 1024x1024 +- 1088x960 +- 1152x896 +- 1216x832 +- 1344x768 +- 1472x704 +- 1600x640 +- 1792x576 +- 2048x512 \ No newline at end of file diff --git a/sizes/512.yaml b/sizes/512.yaml new file mode 100644 index 0000000..624ad4d --- /dev/null +++ b/sizes/512.yaml @@ -0,0 +1,10 @@ +sizes: +- 256x1024 +- 320x768 +- 384x640 +- 448x576 +- 512x512 +- 576x448 +- 640x384 +- 768x320 +- 1024x256 \ No newline at end of file diff --git a/sizes/640.yaml b/sizes/640.yaml new file mode 100644 index 0000000..f2457fe --- /dev/null +++ b/sizes/640.yaml @@ -0,0 +1,10 @@ +sizes: +- 320x1216 +- 384x1024 +- 448x896 +- 512x768 +- 640x640 +- 768x512 +- 896x448 +- 1024x384 +- 1216x320 \ No newline at end of file diff --git a/sizes/768.yaml b/sizes/768.yaml new file mode 100644 index 0000000..1ab3bb7 --- /dev/null +++ b/sizes/768.yaml @@ -0,0 +1,14 @@ +sizes: +- 384x1536 +- 448x1280 +- 512x1152 +- 576x1024 +- 640x896 +- 704x832 +- 768x768 +- 832x704 +- 896x640 +- 1024x576 +- 1152x512 +- 1280x448 +- 1536x384 \ No newline at end of file diff --git a/sizes/896.yaml b/sizes/896.yaml new file mode 100644 index 0000000..784a8df --- /dev/null +++ b/sizes/896.yaml @@ -0,0 +1,16 @@ +sizes: +- 448x1792 +- 512x1536 +- 576x1344 +- 640x1216 +- 704x1088 +- 768x1024 +- 832x960 +- 896x896 +- 960x832 +- 1024x768 +- 1088x704 +- 1216x640 +- 1344x576 +- 1536x512 +- 1792x448 \ No newline at end of file diff --git a/sizes/SD1.5.yaml b/sizes/SD1.5.yaml new file mode 100644 index 0000000..d842373 --- /dev/null +++ b/sizes/SD1.5.yaml @@ -0,0 +1,10 @@ +sizes: +- 320x768 # 1:2.4 +- 384x640 # 1:1.667 +- 512x768 # 1:1.5 +- 448x576 # 1:1.286 +- 512x512 # 1:1 +- 576x448 +- 768x512 +- 640x384 +- 768x320 \ No newline at end of file diff --git a/sizes/SDXL.yaml b/sizes/SDXL.yaml new file mode 100644 index 0000000..2a2a538 --- /dev/null +++ b/sizes/SDXL.yaml @@ -0,0 +1,10 @@ +sizes: +- 640x1536 # 1:2.4 +- 768x1344 # 1:1.75 +- 832x1216 # 1:1.462 +- 896x1152 # 1:1.286 +- 1024x1024 # 1:1 +- 1152x896 +- 1216x832 +- 1344x768 +- 1536x640 \ No newline at end of file diff --git a/sizes/custom/put_your_presets_here b/sizes/custom/put_your_presets_here new file mode 100644 index 0000000..e69de29