Add files via upload
This commit is contained in:
@@ -0,0 +1,213 @@
|
||||
import { app } from "/scripts/app.js";
|
||||
import { api } from "/scripts/api.js"
|
||||
const MultilineSymbol = Symbol();
|
||||
const MultilineResizeSymbol = Symbol();
|
||||
|
||||
function getStyles(name) {
|
||||
//console.log("getStyles called " + name);
|
||||
|
||||
return api.fetchApi('/nsuite/styles')
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
// Eseguire l'elaborazione dei dati
|
||||
const styles = data.styles;
|
||||
//console.log('Styles:', styles);
|
||||
let positive_prompt = "";
|
||||
let negative_prompt = "";
|
||||
|
||||
// Funzione per ottenere positive_prompt e negative_prompt dato il name
|
||||
for (let i = 0; i < styles[0].length; i++) {
|
||||
const style = styles[0][i];
|
||||
if (style.name === name) {
|
||||
positive_prompt = style.prompt;
|
||||
negative_prompt = style.negative_prompt;
|
||||
//console.log('Style:', style.name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (positive_prompt !== "") {
|
||||
//console.log("Positive prompt:", positive_prompt);
|
||||
//console.log("Negative prompt:", negative_prompt);
|
||||
return { positive_prompt: positive_prompt, negative_prompt: negative_prompt };
|
||||
} else {
|
||||
return { positive_prompt: "", negative_prompt: "" };
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error);
|
||||
throw error; // Rilancia l'errore per consentire al chiamante di gestirlo
|
||||
});
|
||||
}
|
||||
|
||||
function addStyles(name, positive_prompt, negative_prompt) {
|
||||
return api.fetchApi('/nsuite/styles/add', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: name,
|
||||
positive_prompt: positive_prompt,
|
||||
negative_prompt: negative_prompt
|
||||
}),
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
function updateStyles(name, positive_prompt, negative_prompt) {
|
||||
return api.fetchApi('/nsuite/styles/update', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: name,
|
||||
positive_prompt: positive_prompt,
|
||||
negative_prompt: negative_prompt
|
||||
}),
|
||||
})
|
||||
}
|
||||
|
||||
function removeStyles(name) {
|
||||
//confirmation
|
||||
let ok = confirm("Are you sure you want to remove this style?");
|
||||
if (!ok) {
|
||||
return;
|
||||
}
|
||||
|
||||
return api.fetchApi('/nsuite/styles/remove', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: name
|
||||
}),
|
||||
})
|
||||
}
|
||||
|
||||
app.registerExtension({
|
||||
name: "n.CLIPTextEncodeAdvancedNSuite",
|
||||
async beforeRegisterNodeDef(nodeType, nodeData, app) {
|
||||
|
||||
const onAdded = nodeType.prototype.onAdded;
|
||||
if (nodeData.name === "CLIPTextEncodeAdvancedNSuite [n-suite]") {
|
||||
nodeType.prototype.onAdded = function () {
|
||||
onAdded?.apply(this, arguments);
|
||||
const styles = this.widgets.find((w) => w.name === "styles");
|
||||
const p_prompt = this.widgets.find((w) => w.name === "positive_prompt");
|
||||
const n_prompt = this.widgets.find((w) => w.name === "negative_prompt");
|
||||
const cb = nodeData.callback;
|
||||
let addedd_positive_prompt = "";
|
||||
let addedd_negative_prompt = "";
|
||||
styles.callback = function () {
|
||||
let index = styles.options.values.indexOf(styles.value);
|
||||
|
||||
|
||||
if (addedd_positive_prompt == "" && addedd_negative_prompt == "") {
|
||||
getStyles(styles.options.values[index-1]).then(style_prompts => {
|
||||
//wait 4 seconds
|
||||
|
||||
console.log(style_prompts);
|
||||
|
||||
addedd_positive_prompt = style_prompts.positive_prompt;
|
||||
addedd_negative_prompt = style_prompts.negative_prompt;
|
||||
//alert("Addedd positive prompt: " + addedd_positive_prompt + "\nAddedd negative prompt: " + addedd_negative_prompt);
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
let current_positive_prompt = p_prompt.value;
|
||||
let current_negative_prompt = n_prompt.value;
|
||||
|
||||
getStyles(styles.value).then(style_prompts => {
|
||||
//console.log(style_prompts)
|
||||
|
||||
if ((current_positive_prompt.trim() != addedd_positive_prompt.trim() || current_negative_prompt.trim() != addedd_negative_prompt.trim())) {
|
||||
|
||||
let ok = confirm("Style has been changed. Do you want to change style without saving?");
|
||||
|
||||
|
||||
if (!ok) {
|
||||
if (styles.value === styles.options.values[0]) {
|
||||
value = styles.options.values[0];
|
||||
}
|
||||
styles.value = styles.options.values[index-1];
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// add the addedd prompt to the current prompt
|
||||
p_prompt.value = style_prompts.positive_prompt;
|
||||
n_prompt.value = style_prompts.negative_prompt;
|
||||
|
||||
|
||||
addedd_positive_prompt = style_prompts.positive_prompt;
|
||||
addedd_negative_prompt = style_prompts.negative_prompt;
|
||||
if (cb) {
|
||||
return cb.apply(this, arguments);
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error);
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
let savestyle;
|
||||
let replacestyle;
|
||||
let deletestyle;
|
||||
|
||||
|
||||
// Create the button widget for selecting the files
|
||||
savestyle = this.addWidget("button", "New", "image", () => {
|
||||
////console.log("Save called");
|
||||
//ask input name style
|
||||
let inputName = prompt("Enter a name for the style:", styles.value);
|
||||
if (inputName === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
addStyles(inputName, p_prompt.value, n_prompt.value);
|
||||
// Add the file to the dropdown list and update the widget value
|
||||
|
||||
if (!styles.options.values.includes(inputName)) {
|
||||
styles.options.values.push(inputName);
|
||||
}
|
||||
|
||||
},{
|
||||
cursor: "grab",
|
||||
},);
|
||||
replacestyle = this.addWidget("button", "Replace", "image", () => {
|
||||
//console.log("Replace called");
|
||||
updateStyles(styles.value, p_prompt.value, n_prompt.value);
|
||||
},{
|
||||
cursor: "grab",
|
||||
},);
|
||||
deletestyle = this.addWidget("button", "Delete", "image", () => {
|
||||
//console.log("Delete called");
|
||||
removeStyles(styles.value);
|
||||
|
||||
// Remove the file from the dropdown list
|
||||
styles.options.values = styles.options.values.filter((value) => value !== styles.value);
|
||||
},{
|
||||
cursor: "grab",
|
||||
},);
|
||||
savestyle.serialize = false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user