Merge main into feature-seedream5image/prunaVideo/vectorizeProviderSettingsRecraft

This commit is contained in:
Sirshendu Ganguly
2026-02-25 20:46:22 -05:00
13 changed files with 507 additions and 98 deletions
+5 -1
View File
@@ -1,6 +1,6 @@
import { app } from "../../scripts/app.js";
import { api } from "../../scripts/api.js";
import { promptEnhanceHandler, syncDimensionsNodeHandler, searchNodeHandler, APIKeyHandler, captionNodeHandler, mediaUUIDHandler, save3DFilepathHandler, videoTranscriptionHandler, videoOutputsHandler, handleCustomErrors, videoInferenceDimensionsHandler, videoModelSearchFilterHandler, audioModelSearchFilterHandler, useParameterToggleHandler, imageInferenceToggleHandler, upscalerToggleHandler, videoUpscalerToggleHandler, audioInferenceToggleHandler, acceleratorOptionsToggleHandler, bytedanceProviderSettingsToggleHandler, xaiProviderSettingsToggleHandler, viduProviderSettingsToggleHandler, sourcefulProviderSettingsToggleHandler, sourcefulProviderSettingsFontsToggleHandler, threeDInferenceToggleHandler, threeDInferenceSettingsToggleHandler, threeDInferenceSettingsLatToggleHandler, ultralyticsProviderSettingsToggleHandler, openaiProviderSettingsToggleHandler, lightricksProviderSettingsToggleHandler, klingProviderSettingsToggleHandler, lumaProviderSettingsToggleHandler, briaProviderSettingsToggleHandler, pixverseProviderSettingsToggleHandler, alibabaProviderSettingsToggleHandler, mireloProviderSettingsToggleHandler, googleProviderSettingsToggleHandler, syncProviderSettingsToggleHandler, syncSegmentToggleHandler, settingsToggleHandler, audioInputToggleHandler, speechInputToggleHandler, briaProviderMaskToggleHandler, wanAnimateAdvancedFeatureSettingsToggleHandler, videoAdvancedFeatureInputsToggleHandler, audioInferenceInputsToggleHandler } from "./utils.js";
import { promptEnhanceHandler, syncDimensionsNodeHandler, searchNodeHandler, APIKeyHandler, captionNodeHandler, mediaUUIDHandler, save3DFilepathHandler, videoTranscriptionHandler, videoOutputsHandler, handleCustomErrors, videoInferenceDimensionsHandler, videoModelSearchFilterHandler, audioModelSearchFilterHandler, useParameterToggleHandler, imageInferenceToggleHandler, upscalerToggleHandler, videoUpscalerToggleHandler, audioInferenceToggleHandler, audioInferenceSpeechToggleHandler, audioSettingsToggleHandler, acceleratorOptionsToggleHandler, bytedanceProviderSettingsToggleHandler, xaiProviderSettingsToggleHandler, viduProviderSettingsToggleHandler, sourcefulProviderSettingsToggleHandler, sourcefulProviderSettingsFontsToggleHandler, threeDInferenceToggleHandler, threeDInferenceSettingsToggleHandler, threeDInferenceSettingsLatToggleHandler, ultralyticsProviderSettingsToggleHandler, openaiProviderSettingsToggleHandler, lightricksProviderSettingsToggleHandler, klingProviderSettingsToggleHandler, lumaProviderSettingsToggleHandler, briaProviderSettingsToggleHandler, pixverseProviderSettingsToggleHandler, alibabaProviderSettingsToggleHandler, mireloProviderSettingsToggleHandler, googleProviderSettingsToggleHandler, syncProviderSettingsToggleHandler, syncSegmentToggleHandler, settingsToggleHandler, audioInputToggleHandler, speechInputToggleHandler, briaProviderMaskToggleHandler, wanAnimateAdvancedFeatureSettingsToggleHandler, videoAdvancedFeatureInputsToggleHandler, audioInferenceInputsToggleHandler } from "./utils.js";
import { RUNWARE_NODE_TYPES, RUNWARE_NODE_PROPS, SEARCH_TERMS } from "./types.js";
const nodeInitList = [];
@@ -78,6 +78,10 @@ app.registerExtension({
videoUpscalerToggleHandler(node);
} else if(nodeClass === RUNWARE_NODE_TYPES.AUDIOINFERENCE) {
audioInferenceToggleHandler(node);
} else if(nodeClass === RUNWARE_NODE_TYPES.AUDIOINFERENCESPEECH) {
audioInferenceSpeechToggleHandler(node);
} else if(nodeClass === RUNWARE_NODE_TYPES.AUDIOSETTINGS) {
audioSettingsToggleHandler(node);
} else if(nodeClass === RUNWARE_NODE_TYPES.ACCELERATOROPTIONS) {
acceleratorOptionsToggleHandler(node);
} else if(nodeClass === RUNWARE_NODE_TYPES.BYTEDANCEPROVIDERSETTINGS) {
+9 -1
View File
@@ -79,10 +79,12 @@ const RUNWARE_NODE_TYPES = {
VIDEOMODELSEARCH: "Runware Video Model Search",
FRAMEIMAGES: "Runware Frame Images",
AUDIOINFERENCE: "Runware Audio Inference",
AUDIOINFERENCESPEECH: "Runware Audio Inference Speech",
AUDIOMODELSEARCH: "Runware Audio Model Search",
AUDIOSECTIONS: "Runware Audio Sections",
AUDIOINFERENCEINPUTS: "Runware Audio Inference Inputs",
AUDIOSETTINGS: "Runware Audio Settings",
AUDIOSETTINGS: "Runware Audio Inference Settings",
AUDIOSETTINGSVOICEMODIFY: "Runware Audio Inference Settings Voice Modify",
PIXVERSEPROVIDERSETTINGS: "Runware Pixverse Provider Settings",
OPENAIPROVIDERSETTINGS: "Runware OpenAI Provider Settings",
BYTEDANCEPROVIDERSETTINGS: "Runware Bytedance Provider Settings",
@@ -270,6 +272,9 @@ const RUNWARE_NODE_PROPS = {
bgColor: DEFAULT_BGCOLOR,
promptEnhancer: true,
},
[RUNWARE_NODE_TYPES.AUDIOINFERENCESPEECH]: {
bgColor: DEFAULT_BGCOLOR,
},
[RUNWARE_NODE_TYPES.AUDIOMODELSEARCH]: {
bgColor: DEFAULT_BGCOLOR,
liveSearch: true,
@@ -444,6 +449,9 @@ const RUNWARE_NODE_PROPS = {
[RUNWARE_NODE_TYPES.AUDIOSETTINGS]: {
bgColor: DEFAULT_BGCOLOR,
},
[RUNWARE_NODE_TYPES.AUDIOSETTINGSVOICEMODIFY]: {
bgColor: DEFAULT_BGCOLOR,
},
[RUNWARE_NODE_TYPES.ACCELERATOROPTIONS]: {
bgColor: DEFAULT_BGCOLOR,
colorModeOnly: true,
+112
View File
@@ -1046,6 +1046,8 @@ function audioInferenceToggleHandler(audioInferenceNode) {
const strengthWidget = audioInferenceNode.widgets.find(w => w.name === "strength");
const useCFGScaleWidget = audioInferenceNode.widgets.find(w => w.name === "useCFGScale");
const CFGScaleWidget = audioInferenceNode.widgets.find(w => w.name === "CFGScale");
const useChannelsWidget = audioInferenceNode.widgets.find(w => w.name === "useChannels");
const channelsWidget = audioInferenceNode.widgets.find(w => w.name === "channels");
// Helper function to toggle widget enabled state (exact same pattern)
function toggleWidgetState(useWidget, paramWidget, paramName) {
@@ -1120,6 +1122,81 @@ function audioInferenceToggleHandler(audioInferenceNode) {
if (useCFGScaleWidget && CFGScaleWidget) {
toggleWidgetState(useCFGScaleWidget, CFGScaleWidget, "CFGScale");
}
if (useChannelsWidget && channelsWidget) {
toggleWidgetState(useChannelsWidget, channelsWidget, "channels");
}
}
function audioSettingsToggleHandler(settingsNode) {
if (!settingsNode?.widgets) return;
const useLyricsWidget = settingsNode.widgets.find(w => w && w.name === "useLyrics");
const lyricsWidget = settingsNode.widgets.find(w => w && w.name === "lyrics");
const useGuidanceTypeWidget = settingsNode.widgets.find(w => w && w.name === "useGuidanceType");
const guidanceTypeWidget = settingsNode.widgets.find(w => w && w.name === "guidanceType");
const useLanguageBoostWidget = settingsNode.widgets.find(w => w && w.name === "useLanguageBoost");
const languageBoostWidget = settingsNode.widgets.find(w => w && w.name === "languageBoost");
const useTurboWidget = settingsNode.widgets.find(w => w && w.name === "useTurbo");
const turboWidget = settingsNode.widgets.find(w => w && w.name === "turbo");
function toggleWidgetState(useWidget, paramWidget, paramName) {
if (!useWidget || !paramWidget) return;
function applyState() {
const enabled = useWidget.value === true;
toggleWidgetEnabled(paramWidget, enabled, settingsNode);
if (paramWidget.options && paramWidget.options.element) {
paramWidget.options.element.disabled = !enabled;
paramWidget.options.element.style.opacity = enabled ? "1" : "0.5";
paramWidget.options.element.style.pointerEvents = enabled ? "auto" : "none";
}
settingsNode.setDirtyCanvas(true);
}
setTimeout(applyState, 100);
appendWidgetCB(useWidget, () => setTimeout(applyState, 50));
}
if (useLyricsWidget && lyricsWidget) toggleWidgetState(useLyricsWidget, lyricsWidget, "lyrics");
if (useGuidanceTypeWidget && guidanceTypeWidget) toggleWidgetState(useGuidanceTypeWidget, guidanceTypeWidget, "guidanceType");
if (useLanguageBoostWidget && languageBoostWidget) toggleWidgetState(useLanguageBoostWidget, languageBoostWidget, "languageBoost");
if (useTurboWidget && turboWidget) toggleWidgetState(useTurboWidget, turboWidget, "turbo");
}
function audioInferenceSpeechToggleHandler(speechNode) {
if (!speechNode?.widgets) return;
const useSpeedWidget = speechNode.widgets.find(w => w && w.name === "useSpeed");
const speedWidget = speechNode.widgets.find(w => w && w.name === "speed");
const useVolumeWidget = speechNode.widgets.find(w => w && w.name === "useVolume");
const volumeWidget = speechNode.widgets.find(w => w && w.name === "volume");
const usePitchWidget = speechNode.widgets.find(w => w && w.name === "usePitch");
const pitchWidget = speechNode.widgets.find(w => w && w.name === "pitch");
const useEmotionWidget = speechNode.widgets.find(w => w && w.name === "useEmotion");
const emotionWidget = speechNode.widgets.find(w => w && w.name === "emotion");
const useToneWidget = speechNode.widgets.find(w => w && w.name === "useTone");
const toneWidget = speechNode.widgets.find(w => w && w.name === "tone");
function toggleWidgetState(useWidget, paramWidget, paramName) {
if (!useWidget || !paramWidget) return;
function applyState() {
const enabled = useWidget.value === true;
toggleWidgetEnabled(paramWidget, enabled, speechNode);
if (paramWidget.options && paramWidget.options.element) {
paramWidget.options.element.disabled = !enabled;
paramWidget.options.element.style.opacity = enabled ? "1" : "0.5";
paramWidget.options.element.style.pointerEvents = enabled ? "auto" : "none";
}
speechNode.setDirtyCanvas(true);
}
setTimeout(applyState, 100);
appendWidgetCB(useWidget, () => setTimeout(applyState, 50));
}
if (useSpeedWidget && speedWidget) toggleWidgetState(useSpeedWidget, speedWidget, "speed");
if (useVolumeWidget && volumeWidget) toggleWidgetState(useVolumeWidget, volumeWidget, "volume");
if (usePitchWidget && pitchWidget) toggleWidgetState(usePitchWidget, pitchWidget, "pitch");
if (useEmotionWidget && emotionWidget) toggleWidgetState(useEmotionWidget, emotionWidget, "emotion");
if (useToneWidget && toneWidget) toggleWidgetState(useToneWidget, toneWidget, "tone");
}
function acceleratorOptionsToggleHandler(acceleratorNode) {
@@ -2620,6 +2697,9 @@ function audioModelSearchFilterHandler(audioModelSearchNode) {
"Ace": [
"runware:ace-step@0 (ACE Step v1 3.5B)",
],
"MiniMax": [
"minimax:speech@2.8 (MiniMax Speech 2.8)",
],
};
function filterModelList() {
@@ -3057,6 +3137,16 @@ function briaProviderSettingsToggleHandler(briaNode) {
const autoTrimWidget = briaNode.widgets.find(w => w.name === "autoTrim");
const usePreserveAudioWidget = briaNode.widgets.find(w => w.name === "usePreserveAudio");
const preserveAudioWidget = briaNode.widgets.find(w => w.name === "preserveAudio");
const useSeasonWidget = briaNode.widgets.find(w => w.name === "useSeason");
const seasonWidget = briaNode.widgets.find(w => w.name === "season");
const useEditWidget = briaNode.widgets.find(w => w.name === "useEdit");
const editWidget = briaNode.widgets.find(w => w.name === "edit");
const useColorWidget = briaNode.widgets.find(w => w.name === "useColor");
const colorWidget = briaNode.widgets.find(w => w.name === "color");
const useLightDirectionWidget = briaNode.widgets.find(w => w.name === "useLightDirection");
const lightDirectionWidget = briaNode.widgets.find(w => w.name === "lightDirection");
const useLightTypeWidget = briaNode.widgets.find(w => w.name === "useLightType");
const lightTypeWidget = briaNode.widgets.find(w => w.name === "lightType");
// Helper function to toggle widget enabled state (exact same pattern)
function toggleWidgetState(useWidget, paramWidget, paramName) {
@@ -3168,6 +3258,26 @@ function briaProviderSettingsToggleHandler(briaNode) {
if (usePreserveAudioWidget && preserveAudioWidget) {
toggleWidgetState(usePreserveAudioWidget, preserveAudioWidget, "preserveAudio");
}
if (useSeasonWidget && seasonWidget) {
toggleWidgetState(useSeasonWidget, seasonWidget, "season");
}
if (useEditWidget && editWidget) {
toggleWidgetState(useEditWidget, editWidget, "edit");
}
if (useColorWidget && colorWidget) {
toggleWidgetState(useColorWidget, colorWidget, "color");
}
if (useLightDirectionWidget && lightDirectionWidget) {
toggleWidgetState(useLightDirectionWidget, lightDirectionWidget, "lightDirection");
}
if (useLightTypeWidget && lightTypeWidget) {
toggleWidgetState(useLightTypeWidget, lightTypeWidget, "lightType");
}
}
function audioInputToggleHandler(audioInputNode) {
@@ -3689,6 +3799,8 @@ export {
upscalerToggleHandler,
videoUpscalerToggleHandler,
audioInferenceToggleHandler,
audioInferenceSpeechToggleHandler,
audioSettingsToggleHandler,
acceleratorOptionsToggleHandler,
bytedanceProviderSettingsToggleHandler,
xaiProviderSettingsToggleHandler,