Merge branch 'main' into fix-tiffNode/feature-outputNode
This commit is contained in:
+14
-1
@@ -1,6 +1,6 @@
|
||||
import { app } from "../../scripts/app.js";
|
||||
import { api } from "../../scripts/api.js";
|
||||
import { promptEnhanceHandler, syncDimensionsNodeHandler, searchNodeHandler, APIKeyHandler, captionNodeHandler, mediaUUIDHandler, videoTranscriptionHandler, handleCustomErrors, videoInferenceDimensionsHandler, videoModelSearchFilterHandler, audioModelSearchFilterHandler, useParameterToggleHandler, imageInferenceToggleHandler, upscalerToggleHandler, videoUpscalerToggleHandler, audioInferenceToggleHandler, acceleratorOptionsToggleHandler, bytedanceProviderSettingsToggleHandler, 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, videoTranscriptionHandler, videoOutputsHandler, handleCustomErrors, videoInferenceDimensionsHandler, videoModelSearchFilterHandler, audioModelSearchFilterHandler, useParameterToggleHandler, imageInferenceToggleHandler, upscalerToggleHandler, videoUpscalerToggleHandler, audioInferenceToggleHandler, acceleratorOptionsToggleHandler, bytedanceProviderSettingsToggleHandler, 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 = [];
|
||||
@@ -11,6 +11,7 @@ app.registerExtension({
|
||||
api.addEventListener('runwareImageCaption', captionNodeHandler);
|
||||
api.addEventListener('runwareMediaUUID', mediaUUIDHandler);
|
||||
api.addEventListener('runwareVideoTranscription', videoTranscriptionHandler);
|
||||
api.addEventListener('runwareVideoOutputs', videoOutputsHandler);
|
||||
},
|
||||
|
||||
async nodeCreated(node) {
|
||||
@@ -39,6 +40,18 @@ app.registerExtension({
|
||||
mediaUUIDWidget.inputEl.style.fontSize = "11px";
|
||||
mediaUUIDWidget.inputEl.style.fontFamily = "monospace";
|
||||
}
|
||||
} else if(nodeClass === RUNWARE_NODE_TYPES.VIDEOINFERENCEOUTPUTS) {
|
||||
// Style draftId and videoId widgets to show full IDs (like Media Upload)
|
||||
const draftIdWidget = node.widgets.find(widget => widget.name === "draftId");
|
||||
const videoIdWidget = node.widgets.find(widget => widget.name === "videoId");
|
||||
for(const w of [draftIdWidget, videoIdWidget]) {
|
||||
if(w && w.inputEl) {
|
||||
w.inputEl.style.width = "100%";
|
||||
w.inputEl.style.minWidth = "300px";
|
||||
w.inputEl.style.fontSize = "11px";
|
||||
w.inputEl.style.fontFamily = "monospace";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const nodeWidgets = node.widgets;
|
||||
|
||||
@@ -122,6 +122,7 @@ const RUNWARE_NODE_TYPES = {
|
||||
VIDEOADVANCEDFEATUREINPUTS: "Runware Video Advanced Feature Inputs",
|
||||
WANANIMATEADVANCEDFEATURESETTINGS: "Runware Wan Animate Advanced Feature Settings",
|
||||
SAVEIMAGE: "Runware Save Image",
|
||||
VIDEOINFERENCEOUTPUTS: "Runware Video Inference Outputs",
|
||||
};
|
||||
|
||||
const RUNWARE_NODE_PROPS = {
|
||||
@@ -425,6 +426,10 @@ const RUNWARE_NODE_PROPS = {
|
||||
bgColor: DEFAULT_BGCOLOR,
|
||||
colorModeOnly: true,
|
||||
},
|
||||
[RUNWARE_NODE_TYPES.VIDEOINFERENCEOUTPUTS]: {
|
||||
bgColor: DEFAULT_BGCOLOR,
|
||||
colorModeOnly: true,
|
||||
},
|
||||
};
|
||||
|
||||
export {
|
||||
|
||||
+48
-1
@@ -106,6 +106,44 @@ function videoTranscriptionHandler(msgEvent) {
|
||||
return false;
|
||||
}
|
||||
|
||||
function videoOutputsHandler(msgEvent) {
|
||||
const outputData = msgEvent.detail;
|
||||
const draftId = outputData.draftId || "";
|
||||
const videoId = outputData.videoId || "";
|
||||
const nodeID = outputData.nodeID;
|
||||
|
||||
if(outputData.success && nodeID !== undefined && nodeID !== null) {
|
||||
const nodeIdInt = typeof nodeID === 'string' ? parseInt(nodeID) : nodeID;
|
||||
const outputNode = app.graph.getNodeById(nodeIdInt);
|
||||
|
||||
if(outputNode !== null && outputNode !== undefined) {
|
||||
const draftIdWidget = outputNode.widgets.find(widget => widget.name === "draftId");
|
||||
const videoIdWidget = outputNode.widgets.find(widget => widget.name === "videoId");
|
||||
|
||||
if(draftIdWidget) {
|
||||
if(draftIdWidget.value !== undefined) draftIdWidget.value = draftId;
|
||||
if(draftIdWidget.inputEl) {
|
||||
draftIdWidget.inputEl.value = draftId;
|
||||
draftIdWidget.inputEl.dispatchEvent(new Event('input', { bubbles: true }));
|
||||
draftIdWidget.inputEl.dispatchEvent(new Event('change', { bubbles: true }));
|
||||
}
|
||||
}
|
||||
|
||||
if(videoIdWidget) {
|
||||
if(videoIdWidget.value !== undefined) videoIdWidget.value = videoId;
|
||||
if(videoIdWidget.inputEl) {
|
||||
videoIdWidget.inputEl.value = videoId;
|
||||
videoIdWidget.inputEl.dispatchEvent(new Event('input', { bubbles: true }));
|
||||
videoIdWidget.inputEl.dispatchEvent(new Event('change', { bubbles: true }));
|
||||
}
|
||||
}
|
||||
|
||||
outputNode.setDirtyCanvas(true);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function notifyUser(message, type="info", title = "Runware", life = 4.5) {
|
||||
app.extensionManager.toast.add({
|
||||
severity: type, // 'info', 'success', 'warn', 'error' \\
|
||||
@@ -1131,6 +1169,8 @@ function bytedanceProviderSettingsToggleHandler(bytedanceNode) {
|
||||
const fastModeWidget = bytedanceNode.widgets.find(w => w.name === "fastMode");
|
||||
const useAudioWidget = bytedanceNode.widgets.find(w => w.name === "useAudio");
|
||||
const audioWidget = bytedanceNode.widgets.find(w => w.name === "audio");
|
||||
const useDraftWidget = bytedanceNode.widgets.find(w => w.name === "useDraft");
|
||||
const draftWidget = bytedanceNode.widgets.find(w => w.name === "draft");
|
||||
|
||||
// Helper function to toggle widget enabled state (exact same pattern)
|
||||
function toggleWidgetState(useWidget, paramWidget, paramName) {
|
||||
@@ -1189,6 +1229,10 @@ function bytedanceProviderSettingsToggleHandler(bytedanceNode) {
|
||||
if (useAudioWidget && audioWidget) {
|
||||
toggleWidgetState(useAudioWidget, audioWidget, "audio");
|
||||
}
|
||||
|
||||
if (useDraftWidget && draftWidget) {
|
||||
toggleWidgetState(useDraftWidget, draftWidget, "draft");
|
||||
}
|
||||
}
|
||||
|
||||
function openaiProviderSettingsToggleHandler(openaiNode) {
|
||||
@@ -1715,7 +1759,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: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:lipsync@1 (PixVerse LipSync)",
|
||||
],
|
||||
"Vidu": [
|
||||
"vidu:1@0 (Vidu Q1 Classic)", "vidu:1@1 (Vidu Q1)",
|
||||
@@ -1801,6 +1845,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) {
|
||||
"pixverse:1@2": {"width": 640, "height": 360},
|
||||
"pixverse:1@3": {"width": 640, "height": 360},
|
||||
"pixverse:1@6": {"width": 640, "height": 360},
|
||||
"pixverse:1@7": {"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},
|
||||
@@ -1869,6 +1914,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) {
|
||||
"pixverse:1@2": "360p",
|
||||
"pixverse:1@3": "360p",
|
||||
"pixverse:1@6": "360p",
|
||||
"pixverse:1@7": "360p",
|
||||
"pixverse:lipsync@1": "360p",
|
||||
"vidu:1@0": "1080p",
|
||||
"vidu:1@1": "1080p",
|
||||
@@ -3149,6 +3195,7 @@ export {
|
||||
mediaUUIDHandler,
|
||||
captionNodeHandler,
|
||||
videoTranscriptionHandler,
|
||||
videoOutputsHandler,
|
||||
handleCustomErrors,
|
||||
APIKeyHandler,
|
||||
videoInferenceDimensionsHandler,
|
||||
|
||||
Reference in New Issue
Block a user