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}), + } + }