From 699d0509a344e01eba08e4c826dac0c1a00d1b43 Mon Sep 17 00:00:00 2001 From: Mohamad-Stability Date: Thu, 31 Oct 2024 18:32:02 +0200 Subject: [PATCH 1/3] Fast upscale, Style, Search and Recolor, and added key override for BG remover --- __init__.py | 5 ++++- stability_api.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 525cb18..a770363 100644 --- a/__init__.py +++ b/__init__.py @@ -1,4 +1,4 @@ -from .stability_api import StabilityConservativeUpscale, StabilityCreativeUpscale, StabilityRemoveBackground, StabilityInpainting, StabilityErase, StabilityCore, StabilityImageUltra, StabilitySearchAndReplace, StabilityOutpainting, StabilitySD3, StabilityControlSketch, StabilityControlStructure +from .stability_api import StabilityConservativeUpscale, StabilityCreativeUpscale, StabilityRemoveBackground, StabilityInpainting, StabilityErase, StabilityCore, StabilityImageUltra, StabilitySearchAndReplace, StabilityOutpainting, StabilitySD3, StabilityControlSketch, StabilityControlStructure, StabilityFastUpscale, StabilityStyle, StabilitySearchAndRecolor NODE_CLASS_MAPPINGS = { "Stability Conservative Upscale": StabilityConservativeUpscale, @@ -13,4 +13,7 @@ NODE_CLASS_MAPPINGS = { "Stability SD3": StabilitySD3, "Stability Control Skech": StabilityControlSketch, "Stability Control Structure": StabilityControlStructure, + "Stability Fast Upscale": StabilityFastUpscale, + "Stability Style": StabilityStyle, + "Stability Search and Recolor": StabilitySearchAndRecolor, } diff --git a/stability_api.py b/stability_api.py index 72f7498..5adbca4 100644 --- a/stability_api.py +++ b/stability_api.py @@ -222,6 +222,10 @@ class StabilityRemoveBackground(StabilityBase): "required": { "image": ("IMAGE",), }, + "optional": { + "output_format": (["png", "webp"],), + "api_key_override": ("STRING", {"multiline": False}), + } } @@ -304,7 +308,7 @@ class StabilitySD3(StabilityBase): ACCEPT = "image/*" INPUT_SPEC = { "required": { - "model": (["sd3", "sd3-turbo"],), + "model": (["sd3.5-large", "sd3.5-large-turbo", "sd3.5-medium", "sd3-large", "sd3-large-turbo", "sd3-medium"],), "prompt": ("STRING", {"multiline": True}), }, "optional": { @@ -372,3 +376,52 @@ class StabilityControlStructure(StabilityBase): "api_key_override": ("STRING", {"multiline": False}), }, } + +class StabilityFastUpscale(StabilityBase): + API_ENDPOINT = "stable-image/upscale/fast" + ACCEPT = "image/*" + INPUT_SPEC = { + "required": { + "image": ("IMAGE",), + }, + "optional": { + "output_format": (["png", "webp", "jpeg"],), + "api_key_override": ("STRING", {"multiline": False}), + } + } + +class StabilityStyle(StabilityBase): + API_ENDPOINT = "stable-image/control/style" + ACCEPT = "image/*" + INPUT_SPEC = { + "required": { + "image": ("IMAGE",), + "prompt": ("STRING", {"multiline": True}), + }, + "optional": { + "negative_prompt": ("STRING", {"multiline": True}), + "aspect_ratio": (["16:9", "1:1", "21:9", "2:3", "3:2", "4:5", "5:4", "9:16", "9:21"],), + "fidelity": ("FLOAT", {"default": 0.5, "min": 0.0, "max": 1.0, "step": 0.01}), + "seed": ("INT", {"default": 0, "min": 0, "max": 4294967294}), + "output_format": (["png", "webp", "jpeg"],), + "api_key_override": ("STRING", {"multiline": False}), + } + } + +class StabilitySearchAndRecolor(StabilityBase): + API_ENDPOINT = "stable-image/edit/search-and-recolor" + ACCEPT = "image/*" + INPUT_SPEC = { + "required": { + "image": ("IMAGE",), + "select_prompt": ("STRING", {"multiline": True}), + "prompt": ("STRING", {"multiline": True}), + }, + "optional": { + "negative_prompt": ("STRING", {"multiline": True}), + "grow_mask": ("INT", {"default": 3, "min": 0, "max": 20}), + "seed": ("INT", {"default": 0, "min": 0, "max": 4294967294}), + "output_format": (["png", "webp", "jpeg"],), + "api_key_override": ("STRING", {"multiline": False}), + } + } From 1f2e19fa79015f49593c417b71082d0471b31458 Mon Sep 17 00:00:00 2001 From: Mohamad-Stability Date: Mon, 4 Nov 2024 23:44:59 +0200 Subject: [PATCH 2/3] fixed Aspect ratio for style reference --- stability_api.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/stability_api.py b/stability_api.py index 5adbca4..ac370a1 100644 --- a/stability_api.py +++ b/stability_api.py @@ -52,8 +52,9 @@ class StabilityBase: image = kwargs.get('image', None) if image is not None: - kwargs["mode"] = "image-to-image" - kwargs.pop("aspect_ratio", None) + if self.API_ENDPOINT not in ["stable-image/control/style", "stable-image/control/sketch", "stable-image/control/structure"]: + kwargs["mode"] = "image-to-image" + kwargs.pop("aspect_ratio", None) image = ToPILImage()(image.squeeze(0).permute(2,0,1)) image.save(buffered, format="PNG") files = self._get_files(buffered, **kwargs) From 33fffec3a64ccd6d66aad45764d9d822cda78ad7 Mon Sep 17 00:00:00 2001 From: Mohamad-Stability Date: Wed, 6 Nov 2024 01:04:03 +0200 Subject: [PATCH 3/3] fix aspect ratio issue with style API --- __init__.py | 2 +- stability_api.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index a770363..cbbcc97 100644 --- a/__init__.py +++ b/__init__.py @@ -11,7 +11,7 @@ NODE_CLASS_MAPPINGS = { "Stability Search and Replace": StabilitySearchAndReplace, "Stability Outpainting": StabilityOutpainting, "Stability SD3": StabilitySD3, - "Stability Control Skech": StabilityControlSketch, + "Stability Control Sketch": StabilityControlSketch, "Stability Control Structure": StabilityControlStructure, "Stability Fast Upscale": StabilityFastUpscale, "Stability Style": StabilityStyle, diff --git a/stability_api.py b/stability_api.py index ac370a1..5144408 100644 --- a/stability_api.py +++ b/stability_api.py @@ -52,7 +52,7 @@ class StabilityBase: image = kwargs.get('image', None) if image is not None: - if self.API_ENDPOINT not in ["stable-image/control/style", "stable-image/control/sketch", "stable-image/control/structure"]: + if self.API_ENDPOINT != "stable-image/control/style": kwargs["mode"] = "image-to-image" kwargs.pop("aspect_ratio", None) image = ToPILImage()(image.squeeze(0).permute(2,0,1))