88 lines
1.9 KiB
JavaScript
88 lines
1.9 KiB
JavaScript
import { app } from "/scripts/app.js";
|
|
import { api } from "/scripts/api.js"
|
|
import { ExtendedComfyWidgets,showVideoOutput } from "./extended_widgets.js";
|
|
const MultilineSymbol = Symbol();
|
|
const MultilineResizeSymbol = Symbol();
|
|
|
|
|
|
async function uploadFile(file, updateNode, node, pasted = false) {
|
|
const videoWidget = node.widgets.find((w) => w.name === "video");
|
|
|
|
|
|
try {
|
|
// Wrap file in formdata so it includes filename
|
|
const body = new FormData();
|
|
body.append("image", file);
|
|
if (pasted) {
|
|
body.append("subfolder", "pasted");
|
|
}
|
|
else {
|
|
body.append("subfolder", "n-suite");
|
|
}
|
|
|
|
const resp = await api.fetchApi("/upload/image", {
|
|
method: "POST",
|
|
body,
|
|
});
|
|
|
|
if (resp.status === 200) {
|
|
const data = await resp.json();
|
|
// Add the file to the dropdown list and update the widget value
|
|
let path = data.name;
|
|
|
|
|
|
if (!videoWidget.options.values.includes(path)) {
|
|
videoWidget.options.values.push(path);
|
|
}
|
|
|
|
if (updateNode) {
|
|
// showVideo(path,node);
|
|
videoWidget.value = path;
|
|
if (data.subfolder) path = data.subfolder + "/" + path;
|
|
showVideo(path,node);
|
|
|
|
}
|
|
} else {
|
|
alert(resp.status + " - " + resp.statusText);
|
|
}
|
|
} catch (error) {
|
|
alert(error);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
let uploadWidget = "";
|
|
app.registerExtension({
|
|
name: "Comfy.VideoSave",
|
|
async beforeRegisterNodeDef(nodeType, nodeData, app) {
|
|
|
|
const onExecuted = nodeType.prototype.onExecuted;
|
|
|
|
|
|
const onAdded = nodeType.prototype.onAdded;
|
|
if (nodeData.name === "SaveVideo [n-suite]") {
|
|
nodeType.prototype.onAdded = function () {
|
|
|
|
ExtendedComfyWidgets["VIDEO"](this, "videoOutWidget", ["STRING"], "", app,"output");
|
|
|
|
};
|
|
nodeType.prototype.onExecuted = function (message) {
|
|
onExecuted?.apply(this, arguments);
|
|
console.log(nodeData)
|
|
|
|
let full_path="";
|
|
|
|
for (const list of message.text) {
|
|
full_path = list;
|
|
}
|
|
|
|
let fullweb= showVideoOutput(full_path,this)
|
|
|
|
}
|
|
};
|
|
|
|
},
|
|
});
|