diff --git a/clientlibs/utils.js b/clientlibs/utils.js index 46140bd..2ec090f 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -3331,6 +3331,8 @@ function audioModelSearchFilterHandler(audioModelSearchNode) { "runware:ace-step@0 (ACE Step v1 3.5B)", "runware:ace-step@v1.5-base (ACE-Step v1.5 Base)", "runware:ace-step@v1.5-turbo (ACE-Step v1.5 Turbo)", + "runware:ace-step@v1.5-xl-base (ACE-Step v1.5 XL Base)", + "runware:ace-step@v1.5-xl-turbo (ACE-Step v1.5 XL Turbo)", ], "Alibaba": [ "alibaba:qwen@3-tts-1.7b-voicedesign (Qwen3 TTS 1.7B Voice Design)", diff --git a/modules/audioModelSearch.py b/modules/audioModelSearch.py index 5a18887..ffcd8f1 100644 --- a/modules/audioModelSearch.py +++ b/modules/audioModelSearch.py @@ -18,6 +18,8 @@ class RunwareAudioModelSearch: "runware:ace-step@0 (ACE Step v1 3.5B)", "runware:ace-step@v1.5-base (ACE-Step v1.5 Base)", "runware:ace-step@v1.5-turbo (ACE-Step v1.5 Turbo)", + "runware:ace-step@v1.5-xl-base (ACE-Step v1.5 XL Base)", + "runware:ace-step@v1.5-xl-turbo (ACE-Step v1.5 XL Turbo)", ], "Alibaba": [ "alibaba:qwen@3-tts-1.7b-voicedesign (Qwen3 TTS 1.7B Voice Design)", diff --git a/modules/audioSettings.py b/modules/audioSettings.py index dacdd8d..98a2c74 100644 --- a/modules/audioSettings.py +++ b/modules/audioSettings.py @@ -1,8 +1,9 @@ """ Runware Audio Inference Settings Node Provides lyrics, lyricsOptimizer, instrumental, guidanceType, languageBoost, turbo, temperature, textNormalization, -bpm, keyScale, timeSignature, vocalLanguage, coverConditioningScale, repaintingStart, -repaintingEnd, xVectorOnly, maxNewTokens, transcript, and more for Runware Audio Inference. +bpm, keyScale, timeSignature, vocalLanguage, coverConditioningScale, repaintingStart, repaintingEnd, +cfgIntervalStart, cfgIntervalEnd, repaintMode, repaintStrength, xVectorOnly, maxNewTokens, transcript, +and more for Runware Audio Inference. """ from typing import Dict, Any @@ -233,6 +234,47 @@ def INPUT_TYPES(cls): "label_on": "true", "label_off": "false", }), + "useCfgIntervalStart": ("BOOLEAN", { + "tooltip": "Enable to include cfgIntervalStart (diffusion ratio where CFG begins). ACE-Step Base only — not supported on Turbo variants.", + "default": False, + }), + "cfgIntervalStart": ("FLOAT", { + "tooltip": "Diffusion ratio where CFG begins (0.0 = first step). Only used when 'Use Cfg Interval Start' is enabled.", + "default": 0.0, + "min": 0.0, + "max": 1.0, + "step": 0.01, + }), + "useCfgIntervalEnd": ("BOOLEAN", { + "tooltip": "Enable to include cfgIntervalEnd (diffusion ratio where CFG ends). ACE-Step Base only — not supported on Turbo variants.", + "default": False, + }), + "cfgIntervalEnd": ("FLOAT", { + "tooltip": "Diffusion ratio where CFG ends (1.0 = last step). Only used when 'Use Cfg Interval End' is enabled.", + "default": 1.0, + "min": 0.0, + "max": 1.0, + "step": 0.01, + }), + "useRepaintMode": ("BOOLEAN", { + "tooltip": "Enable to include repaintMode (repaint blend strategy). Requires input audio and an active repaint region (repaintingStart / repaintingEnd).", + "default": False, + }), + "repaintMode": (["conservative", "balanced", "aggressive"], { + "tooltip": "Repaint blend strategy. Only used when 'Use Repaint Mode' is enabled.", + "default": "balanced", + }), + "useRepaintStrength": ("BOOLEAN", { + "tooltip": "Enable to include repaintStrength (balanced mode only). Requires input audio and an active repaint region.", + "default": False, + }), + "repaintStrength": ("FLOAT", { + "tooltip": "Repaint aggressiveness (0 = preserve source, 1 = full regen). Balanced mode only. Only used when 'Use Repaint Strength' is enabled.", + "default": 0.5, + "min": 0.0, + "max": 1.0, + "step": 0.01, + }), } } @@ -243,7 +285,8 @@ def INPUT_TYPES(cls): DESCRIPTION = ( "Configure audio generation settings (lyrics, lyricsOptimizer, instrumental, guidanceType, languageBoost, turbo, temperature, textNormalization, " "bpm, keyScale, timeSignature, vocalLanguage, coverConditioningScale, repaintingStart, repaintingEnd, " - "xVectorOnly, maxNewTokens, transcript, etc.) for Runware Audio Inference. Connect to Runware Audio Inference node." + "cfgIntervalStart, cfgIntervalEnd, repaintMode, repaintStrength, xVectorOnly, maxNewTokens, transcript, etc.) " + "for Runware Audio Inference. Connect to Runware Audio Inference node." ) def createSettings(self, **kwargs) -> tuple[Dict[str, Any]]: @@ -290,6 +333,14 @@ def createSettings(self, **kwargs) -> tuple[Dict[str, Any]]: max_new_tokens = kwargs.get("maxNewTokens", 4096) use_transcript = kwargs.get("useTranscript", False) transcript = kwargs.get("transcript", "") or "" + use_cfg_interval_start = kwargs.get("useCfgIntervalStart", False) + cfg_interval_start = kwargs.get("cfgIntervalStart", 0.0) + use_cfg_interval_end = kwargs.get("useCfgIntervalEnd", False) + cfg_interval_end = kwargs.get("cfgIntervalEnd", 1.0) + use_repaint_mode = kwargs.get("useRepaintMode", False) + repaint_mode = kwargs.get("repaintMode", "balanced") + use_repaint_strength = kwargs.get("useRepaintStrength", False) + repaint_strength = kwargs.get("repaintStrength", 0.5) settings: Dict[str, Any] = {} @@ -351,6 +402,18 @@ def createSettings(self, **kwargs) -> tuple[Dict[str, Any]]: if use_transcript and transcript.strip(): settings["transcript"] = transcript.strip() + if use_cfg_interval_start: + settings["cfgIntervalStart"] = float(cfg_interval_start) + + if use_cfg_interval_end: + settings["cfgIntervalEnd"] = float(cfg_interval_end) + + if use_repaint_mode: + settings["repaintMode"] = repaint_mode + + if use_repaint_strength: + settings["repaintStrength"] = float(repaint_strength) + return (settings,)