From 683ab943a10110279e89af49cef0d336737cbd73 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Sun, 5 Apr 2026 09:13:29 +0530 Subject: [PATCH] Added more params --- clientlibs/utils.js | 13 ++++++++++- modules/utils/runwareUtils.py | 2 +- modules/videoInference.py | 2 +- modules/videoModelSearch.py | 3 +++ modules/videoSettings.py | 42 +++++++++++++++++++++++++++++++++-- 5 files changed, 57 insertions(+), 5 deletions(-) diff --git a/clientlibs/utils.js b/clientlibs/utils.js index 58bdefd..93abfc4 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -1361,6 +1361,12 @@ function videoSettingsToggleHandler(settingsNode) { const expressivenessWidget = settingsNode.widgets.find(w => w && w.name === "expressiveness"); const useVoiceDescriptionWidget = settingsNode.widgets.find(w => w && w.name === "useVoiceDescription"); const voiceDescriptionWidget = settingsNode.widgets.find(w => w && w.name === "voiceDescription"); + const useStyleWidget = settingsNode.widgets.find(w => w && w.name === "useStyle"); + const styleWidget = settingsNode.widgets.find(w => w && w.name === "style"); + const useThinkingWidget = settingsNode.widgets.find(w => w && w.name === "useThinking"); + const thinkingWidget = settingsNode.widgets.find(w => w && w.name === "thinking"); + const useMultiClipWidget = settingsNode.widgets.find(w => w && w.name === "useMultiClip"); + const multiClipWidget = settingsNode.widgets.find(w => w && w.name === "multiClip"); function toggleWidgetState(useWidget, paramWidget, paramName) { if (!useWidget || !paramWidget) return; @@ -1385,6 +1391,9 @@ function videoSettingsToggleHandler(settingsNode) { if (useRemoveBackgroundWidget && removeBackgroundWidget) toggleWidgetState(useRemoveBackgroundWidget, removeBackgroundWidget, "removeBackground"); if (useExpressivenessWidget && expressivenessWidget) toggleWidgetState(useExpressivenessWidget, expressivenessWidget, "expressiveness"); if (useVoiceDescriptionWidget && voiceDescriptionWidget) toggleWidgetState(useVoiceDescriptionWidget, voiceDescriptionWidget, "voiceDescription"); + if (useStyleWidget && styleWidget) toggleWidgetState(useStyleWidget, styleWidget, "style"); + if (useThinkingWidget && thinkingWidget) toggleWidgetState(useThinkingWidget, thinkingWidget, "thinking"); + if (useMultiClipWidget && multiClipWidget) toggleWidgetState(useMultiClipWidget, multiClipWidget, "multiClip"); } function audioInferenceSpeechToggleHandler(speechNode) { @@ -2492,7 +2501,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { ], "PixVerse": [ "pixverse:1@1 (PixVerse v3.5)", "pixverse:1@2 (PixVerse v4)", - "pixverse:1@3 (PixVerse v4.5)", "pixverse:1@5-fast (PixVerse v5 Fast)", "pixverse:1@6 (PixVerse v5.5)", "pixverse:1@7 (PixVerse v5.6)", "pixverse:lipsync@1 (PixVerse LipSync)", + "pixverse:1@3 (PixVerse v4.5)", "pixverse:1@5-fast (PixVerse v5 Fast)", "pixverse:1@6 (PixVerse v5.5)", "pixverse:1@7 (PixVerse v5.6)", "pixverse:1@8 (PixVerse v6)", "pixverse:lipsync@1 (PixVerse LipSync)", ], "Vidu": [ "vidu:1@0 (Vidu Q1 Classic)", "vidu:1@1 (Vidu Q1)", @@ -2604,6 +2613,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "pixverse:1@5-fast": {"width": 640, "height": 360}, "pixverse:1@6": {"width": 640, "height": 360}, "pixverse:1@7": {"width": 640, "height": 360}, + "pixverse:1@8": {"width": 640, "height": 360}, "pixverse:lipsync@1": {"width": 640, "height": 360}, "vidu:1@0": {"width": 1920, "height": 1080}, "vidu:1@1": {"width": 1920, "height": 1080}, @@ -2690,6 +2700,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "pixverse:1@5-fast": "360p", "pixverse:1@6": "360p", "pixverse:1@7": "360p", + "pixverse:1@8": "360p", "pixverse:lipsync@1": "360p", "vidu:1@0": "1080p", "vidu:1@1": "1080p", diff --git a/modules/utils/runwareUtils.py b/modules/utils/runwareUtils.py index 75ba920..0c97b0f 100644 --- a/modules/utils/runwareUtils.py +++ b/modules/utils/runwareUtils.py @@ -158,7 +158,7 @@ def getCustomEndpoint(): custom_endpoint = os.getenv("RUNWARE_CUSTOM_ENDPOINT") if custom_endpoint and isinstance(custom_endpoint, str): return custom_endpoint - return "https://api.runware.dev/v1" + return "https://api.runware.ai/v1" SESSION_TIMEOUT = getTimeout() RUNWARE_API_KEY = getAPIKey() diff --git a/modules/videoInference.py b/modules/videoInference.py index 684f19f..411b401 100644 --- a/modules/videoInference.py +++ b/modules/videoInference.py @@ -141,7 +141,7 @@ class txt2vid: "tooltip": "Connect a Runware Accelerator Options Node to configure caching and acceleration settings.", }), "settings": ("RUNWAREVIDEOSETTINGS", { - "tooltip": "Connect a Runware Video Inference Settings node to configure draft, audio, promptUpsampling, voiceDescription, etc.", + "tooltip": "Connect a Runware Video Inference Settings node to configure draft, audio, promptUpsampling, voiceDescription, style, thinking, multiClip, etc.", }), } } diff --git a/modules/videoModelSearch.py b/modules/videoModelSearch.py index 0d234ba..91329e6 100644 --- a/modules/videoModelSearch.py +++ b/modules/videoModelSearch.py @@ -54,6 +54,7 @@ class videoModelSearch: "pixverse:1@5-fast (PixVerse v5 Fast)", "pixverse:1@6 (PixVerse v5.5)", "pixverse:1@7 (PixVerse v5.6)", + "pixverse:1@8 (PixVerse v6)", "pixverse:lipsync@1 (PixVerse LipSync)", ], "Vidu": [ @@ -183,6 +184,7 @@ class videoModelSearch: "pixverse:1@5-fast": {"width": 640, "height": 360}, "pixverse:1@6": {"width": 640, "height": 360}, "pixverse:1@7": {"width": 640, "height": 360}, + "pixverse:1@8": {"width": 640, "height": 360}, "pixverse:lipsync@1": {"width": 640, "height": 360}, # Vidu Models @@ -311,6 +313,7 @@ class videoModelSearch: "pixverse:1@5-fast": "360p", "pixverse:1@6": "360p", "pixverse:1@7": "360p", + "pixverse:1@8": "360p", "pixverse:lipsync@1": "360p", # Vidu Models diff --git a/modules/videoSettings.py b/modules/videoSettings.py index 1bf0842..50550dd 100644 --- a/modules/videoSettings.py +++ b/modules/videoSettings.py @@ -1,6 +1,6 @@ """ Runware Video Inference Settings Node -Provides settings (draft, audio, promptUpsampling, voiceDescription, etc.) for Runware Video Inference. +Provides settings (draft, audio, promptUpsampling, voiceDescription, style, thinking, multiClip, etc.) for Runware Video Inference. """ from typing import Dict, Any @@ -79,6 +79,32 @@ class RunwareVideoSettings: "multiline": True, "tooltip": "Voice description text (max 10000 characters). Not supported when inputs.audio is given.", }), + "useStyle": ("BOOLEAN", { + "tooltip": "Enable to include style (visual style of the video) in video inference settings.", + "default": False, + }), + "style": (["anime", "3d_animation", "clay", "comic", "cyberpunk"], { + "tooltip": "Visual style of the video. Only used when 'Use Style' is enabled.", + "default": "anime", + }), + "useThinking": ("BOOLEAN", { + "tooltip": "Enable to include thinking in video inference settings.", + "default": False, + }), + "thinking": (["enabled", "disabled", "auto"], { + "tooltip": "Thinking mode. Only used when 'Use Thinking' is enabled.", + "default": "auto", + }), + "useMultiClip": ("BOOLEAN", { + "tooltip": "Enable to include multiClip (multi-clip generation with dynamic camera changes; transition endpoint).", + "default": False, + }), + "multiClip": ("BOOLEAN", { + "tooltip": "Multi-clip generation with dynamic camera changes. Available on transition endpoint. Only used when 'Use Multi Clip' is enabled.", + "default": False, + "label_on": "Enabled", + "label_off": "Disabled", + }), } } @@ -87,7 +113,7 @@ class RunwareVideoSettings: FUNCTION = "createSettings" CATEGORY = "Runware" DESCRIPTION = ( - "Configure video inference settings (draft, audio, promptUpsampling, voiceDescription, etc.) for Runware Video Inference. " + "Configure video inference settings (draft, audio, promptUpsampling, voiceDescription, style, thinking, multiClip, etc.) for Runware Video Inference. " "Connect to Runware Video Inference node." ) @@ -107,6 +133,12 @@ class RunwareVideoSettings: expressiveness = kwargs.get("expressiveness", "low") use_voice_description = kwargs.get("useVoiceDescription", False) voice_description = (kwargs.get("voiceDescription") or "").strip() + use_style = kwargs.get("useStyle", False) + style = kwargs.get("style", "anime") + use_thinking = kwargs.get("useThinking", False) + thinking = kwargs.get("thinking", "auto") + use_multi_clip = kwargs.get("useMultiClip", False) + multi_clip = kwargs.get("multiClip", False) settings: Dict[str, Any] = {} @@ -124,6 +156,12 @@ class RunwareVideoSettings: settings["expressiveness"] = expressiveness if use_voice_description and voice_description: settings["voiceDescription"] = voice_description + if use_style: + settings["style"] = style + if use_thinking: + settings["thinking"] = thinking + if use_multi_clip: + settings["multiClip"] = bool(multi_clip) return (settings,)