Merge pull request #143 from Runware/feature-ACE-1-5-Step

Updated list of params for Audio Inference Settings
This commit is contained in:
Sirshendu Ganguly
2026-05-15 17:42:28 +05:30
committed by GitHub
5 changed files with 53 additions and 6 deletions
+9
View File
@@ -1293,6 +1293,10 @@ function audioSettingsToggleHandler(settingsNode) {
const maxNewTokensWidget = settingsNode.widgets.find(w => w && w.name === "maxNewTokens");
const useTranscriptWidget = settingsNode.widgets.find(w => w && w.name === "useTranscript");
const transcriptWidget = settingsNode.widgets.find(w => w && w.name === "transcript");
const useCfgIntervalStartWidget = settingsNode.widgets.find(w => w && w.name === "useCfgIntervalStart");
const cfgIntervalStartWidget = settingsNode.widgets.find(w => w && w.name === "cfgIntervalStart");
const useCfgIntervalEndWidget = settingsNode.widgets.find(w => w && w.name === "useCfgIntervalEnd");
const cfgIntervalEndWidget = settingsNode.widgets.find(w => w && w.name === "cfgIntervalEnd");
function toggleWidgetState(useWidget, paramWidget, paramName) {
if (!useWidget || !paramWidget) return;
@@ -1331,6 +1335,8 @@ function audioSettingsToggleHandler(settingsNode) {
if (useXVectorOnlyWidget && xVectorOnlyWidget) toggleWidgetState(useXVectorOnlyWidget, xVectorOnlyWidget, "xVectorOnly");
if (useMaxNewTokensWidget && maxNewTokensWidget) toggleWidgetState(useMaxNewTokensWidget, maxNewTokensWidget, "maxNewTokens");
if (useTranscriptWidget && transcriptWidget) toggleWidgetState(useTranscriptWidget, transcriptWidget, "transcript");
if (useCfgIntervalStartWidget && cfgIntervalStartWidget) toggleWidgetState(useCfgIntervalStartWidget, cfgIntervalStartWidget, "cfgIntervalStart");
if (useCfgIntervalEndWidget && cfgIntervalEndWidget) toggleWidgetState(useCfgIntervalEndWidget, cfgIntervalEndWidget, "cfgIntervalEnd");
}
function textInferenceSettingsToggleHandler(settingsNode) {
@@ -3336,6 +3342,9 @@ 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)",
"runware:ace-step@v1.5-xl-sft (ACE-Step v1.5 XL SFT)",
],
"Alibaba": [
"alibaba:qwen@3-tts-1.7b-voicedesign (Qwen3 TTS 1.7B Voice Design)",
+3 -3
View File
@@ -56,9 +56,9 @@ class RunwareAudioInference:
"default": False,
"tooltip": "Enable/disable bitrate parameter in API request"
}),
"bitrate": ([16, 32, 64, 128, 256], {
"bitrate": ([8, 16, 32, 64, 128, 256], {
"default": 128,
"tooltip": "Audio bitrate in kbps. Allowed: 16, 32, 64, 128, 256. Applies to compressed formats (e.g. MP3, OGG).",
"tooltip": "Audio bitrate in kbps. Allowed: 8, 16, 32, 64, 128, 256. Applies to compressed formats (e.g. MP3, OGG).",
}),
"useChannels": ("BOOLEAN", {
"default": False,
@@ -317,7 +317,7 @@ class RunwareAudioInference:
audioSettings["sampleRate"] = int(params["sampleRate"])
if params["useBitrate"]:
_br = int(params["bitrate"])
_allowed_bitrates = (16, 32, 64, 128, 256)
_allowed_bitrates = (8, 16, 32, 64, 128, 256)
audioSettings["bitrate"] = _br if _br in _allowed_bitrates else min(_allowed_bitrates, key=lambda x: abs(x - _br))
if params["useChannels"]:
audioSettings["channels"] = params["channels"]
+3
View File
@@ -18,6 +18,9 @@ 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)",
"runware:ace-step@v1.5-xl-sft (ACE-Step v1.5 XL SFT)",
],
"Alibaba": [
"alibaba:qwen@3-tts-1.7b-voicedesign (Qwen3 TTS 1.7B Voice Design)",
+37 -3
View File
@@ -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, xVectorOnly, maxNewTokens, transcript,
and more for Runware Audio Inference.
"""
from typing import Dict, Any
@@ -233,6 +234,28 @@ class RunwareAudioSettings:
"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,
}),
}
}
@@ -243,7 +266,8 @@ class RunwareAudioSettings:
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, xVectorOnly, maxNewTokens, transcript, etc.) "
"for Runware Audio Inference. Connect to Runware Audio Inference node."
)
def createSettings(self, **kwargs) -> tuple[Dict[str, Any]]:
@@ -290,6 +314,10 @@ class RunwareAudioSettings:
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)
settings: Dict[str, Any] = {}
@@ -351,6 +379,12 @@ class RunwareAudioSettings:
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)
return (settings,)
File diff suppressed because one or more lines are too long