Add video background removal and video upscaler nodes

- Add Runware Video Background Removal node with Bria support
- Add Runware Video Upscaler node with Bria support
- Add Runware Vectorize node for image vectorization
- Add Lightricks Provider Settings node
- Add Video Inference Inputs node for structured inputs
- Add Input Audios and Reference Videos nodes
- Update video inference with speech support and reference videos
- Add new video models: OmniHuman 1/1.5, PixVerse LipSync, LTX
- Update Bytedance provider settings with boolean controls
- Add corresponding workflow examples
This commit is contained in:
Sirshendu Ganguly
2025-10-23 22:36:24 -04:00
parent 1c7da18f11
commit 8d75a6933f
28 changed files with 757 additions and 34 deletions
+9
View File
@@ -29,6 +29,15 @@ app.registerExtension({
captionInput.style.outline = "none";
captionInput.readOnly = true;
return;
} else if(nodeClass === RUNWARE_NODE_TYPES.MEDIAUPLOAD) {
// Style the mediaUUID widget to show full UUID
const mediaUUIDWidget = node.widgets.find(widget => widget.name === "mediaUUID");
if(mediaUUIDWidget && mediaUUIDWidget.inputEl) {
mediaUUIDWidget.inputEl.style.width = "100%";
mediaUUIDWidget.inputEl.style.minWidth = "300px";
mediaUUIDWidget.inputEl.style.fontSize = "11px";
mediaUUIDWidget.inputEl.style.fontFamily = "monospace";
}
}
if(crNodeProps.colorModeOnly === true) return;
+32
View File
@@ -89,6 +89,13 @@ const RUNWARE_NODE_TYPES = {
ELEVENLABSPROVIDERSETTINGSSECTIONS: "Runware ElevenLabs Provider Settings Sections",
VIDUPROVIDERSETTINGS: "Runware Vidu Provider Settings",
MEDIAUPLOAD: "Runware Media Upload",
INPUTAUDIOS: "Runware Input Audios",
REFERENCEVIDEOS: "Runware Reference Videos",
VIDEOINFERENCEINPUTS: "Runware Video Inference Inputs",
LIGHTRICKSPROVIDERSETTINGS: "Runware Lightricks Provider Settings",
VECTORIZE: "Runware Vectorize",
VIDEOBGREMOVAL: "Runware Video Background Removal",
VIDEOUPSCALER: "Runware Video Upscaler",
};
const RUNWARE_NODE_PROPS = {
@@ -259,6 +266,31 @@ const RUNWARE_NODE_PROPS = {
bgColor: DEFAULT_BGCOLOR,
colorModeOnly: true,
},
[RUNWARE_NODE_TYPES.INPUTAUDIOS]: {
bgColor: DEFAULT_BGCOLOR,
colorModeOnly: true,
},
[RUNWARE_NODE_TYPES.REFERENCEVIDEOS]: {
bgColor: DEFAULT_BGCOLOR,
colorModeOnly: true,
},
[RUNWARE_NODE_TYPES.VIDEOINFERENCEINPUTS]: {
bgColor: DEFAULT_BGCOLOR,
colorModeOnly: true,
},
[RUNWARE_NODE_TYPES.LIGHTRICKSPROVIDERSETTINGS]: {
bgColor: DEFAULT_BGCOLOR,
colorModeOnly: true,
},
[RUNWARE_NODE_TYPES.VECTORIZE]: {
bgColor: DEFAULT_BGCOLOR,
},
[RUNWARE_NODE_TYPES.VIDEOBGREMOVAL]: {
bgColor: DEFAULT_BGCOLOR,
},
[RUNWARE_NODE_TYPES.VIDEOUPSCALER]: {
bgColor: DEFAULT_BGCOLOR,
},
};
export {
+14 -2
View File
@@ -47,11 +47,23 @@ function mediaUUIDHandler(msgEvent) {
if(mediaData.success) {
const mediaNode = app.graph.getNodeById(mediaNodeID);
if(mediaNode !== null && mediaNode !== undefined) {
// Find the mediaUUID widget specifically
const mediaUUIDWidget = mediaNode.widgets.find(widget => widget.name === "mediaUUID");
if(mediaUUIDWidget && mediaUUIDWidget.inputEl) {
mediaUUIDWidget.inputEl.value = mediaUUID;
if(mediaUUIDWidget) {
// Update both widget.value and inputEl.value for STRING widgets
if(mediaUUIDWidget.value !== undefined) {
mediaUUIDWidget.value = mediaUUID;
}
if(mediaUUIDWidget.inputEl) {
mediaUUIDWidget.inputEl.value = mediaUUID;
// Trigger change events to update the UI
mediaUUIDWidget.inputEl.dispatchEvent(new Event('input', { bubbles: true }));
mediaUUIDWidget.inputEl.dispatchEvent(new Event('change', { bubbles: true }));
}
}
}
}