From 53a60ffb80f1d451887793ed46090020cd8f8144 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Tue, 26 May 2026 13:42:26 +0530 Subject: [PATCH] Added support for creativity in Runware Image Inference Settings --- clientlibs/utils.js | 5 +++++ modules/settings.py | 19 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/clientlibs/utils.js b/clientlibs/utils.js index 97cfc8e..8b75b27 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -5168,6 +5168,8 @@ function settingsToggleHandler(settingsNode) { const autoCropWidget = settingsNode.widgets.find(w => w.name === "autoCrop"); const useDilatePixelsWidget = settingsNode.widgets.find(w => w.name === "useDilatePixels"); const dilatePixelsWidget = settingsNode.widgets.find(w => w.name === "dilatePixels"); + const useCreativityWidget = settingsNode.widgets.find(w => w.name === "useCreativity"); + const creativityWidget = settingsNode.widgets.find(w => w.name === "creativity"); // Helper function to toggle widget enabled state function toggleWidgetState(useWidget, paramWidget, paramName) { @@ -5266,6 +5268,9 @@ function settingsToggleHandler(settingsNode) { if (useDilatePixelsWidget && dilatePixelsWidget) { toggleWidgetState(useDilatePixelsWidget, dilatePixelsWidget, "dilatePixels"); } + if (useCreativityWidget && creativityWidget) { + toggleWidgetState(useCreativityWidget, creativityWidget, "creativity"); + } } function outpaintSettingsToggleHandler(settingsNode) { diff --git a/modules/settings.py b/modules/settings.py index dc96459..157d344 100644 --- a/modules/settings.py +++ b/modules/settings.py @@ -3,7 +3,7 @@ Runware Image Inference Settings (registered as Runware Settings for workflow co Provides settings for image generation including temperature, systemPrompt, topP, layers, quality, background, style, search, promptExtend, editRegions, thinking (boolean), thinkingLevel (high/medium/low), sequential, renderingSpeed (TURBO/DEFAULT/QUALITY), -magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, and colorPalette +magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, creativity (raw/low/medium/high), and colorPalette (from Runware Image Inference Settings Color Palette). """ @@ -193,6 +193,14 @@ class RunwareSettings: "max": 100, "step": 1, }), + "useCreativity": ("BOOLEAN", { + "tooltip": "Enable to include creativity in settings.", + "default": False, + }), + "creativity": (["raw", "low", "medium", "high"], { + "default": "medium", + "tooltip": "Creativity level. Only used when 'Use Creativity' is enabled.", + }), } } @@ -203,7 +211,7 @@ class RunwareSettings: DESCRIPTION = ( "Configure general settings for image generation: temperature, system prompt, top-p, layers, quality, background, style, search, " "promptExtend, editRegions (JSON), thinking (boolean), thinkingLevel (high/medium/low), sequential, " - "renderingSpeed (TURBO/DEFAULT/QUALITY), magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, and optional colorPalette from the Color Palette node." + "renderingSpeed (TURBO/DEFAULT/QUALITY), magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, creativity (raw/low/medium/high), and optional colorPalette from the Color Palette node." ) def createSettings(self, **kwargs) -> tuple[Dict[str, Any]]: @@ -229,6 +237,7 @@ class RunwareSettings: useMagicPrompt = kwargs.get("useMagicPrompt", False) useAutoCrop = kwargs.get("useAutoCrop", False) useDilatePixels = kwargs.get("useDilatePixels", False) + useCreativity = kwargs.get("useCreativity", False) # Get value parameters temperature = kwargs.get("temperature", 1.0) @@ -241,6 +250,7 @@ class RunwareSettings: style = kwargs.get("style", "auto") renderingSpeed = kwargs.get("renderingSpeed", "DEFAULT") magicPrompt = kwargs.get("magicPrompt", "AUTO") + creativity = kwargs.get("creativity", "medium") # Build settings dictionary - only include what is enabled settings: Dict[str, Any] = {} @@ -299,6 +309,11 @@ class RunwareSettings: settings["autoCrop"] = bool(kwargs.get("autoCrop", False)) if useDilatePixels: settings["dilatePixels"] = int(kwargs.get("dilatePixels", 10)) + if useCreativity: + creativity = str(creativity) + if creativity not in ("raw", "low", "medium", "high"): + raise ValueError("creativity must be raw, low, medium, or high when useCreativity is enabled.") + settings["creativity"] = creativity # Clean up None values settings = {k: v for k, v in settings.items() if v is not None}