mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-01-11 10:25:16 +00:00
Update litegraph to latest.
This commit is contained in:
parent
99abcbef41
commit
880c9b928b
1
.gitignore
vendored
1
.gitignore
vendored
@ -14,4 +14,3 @@ venv/
|
|||||||
web/extensions/*
|
web/extensions/*
|
||||||
!web/extensions/logging.js.example
|
!web/extensions/logging.js.example
|
||||||
!web/extensions/core/
|
!web/extensions/core/
|
||||||
startup-scripts/
|
|
@ -144,6 +144,10 @@
|
|||||||
|
|
||||||
ctrl_shift_v_paste_connect_unselected_outputs: true, //[true!] allows ctrl + shift + v to paste nodes with the outputs of the unselected nodes connected with the inputs of the newly pasted nodes
|
ctrl_shift_v_paste_connect_unselected_outputs: true, //[true!] allows ctrl + shift + v to paste nodes with the outputs of the unselected nodes connected with the inputs of the newly pasted nodes
|
||||||
|
|
||||||
|
// if true, all newly created nodes/links will use string UUIDs for their id fields instead of integers.
|
||||||
|
// use this if you must have node IDs that are unique across all graphs and subgraphs.
|
||||||
|
use_uuids: false,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register a node class so it can be listed when the user wants to create a new one
|
* Register a node class so it can be listed when the user wants to create a new one
|
||||||
* @method registerNodeType
|
* @method registerNodeType
|
||||||
@ -603,6 +607,13 @@
|
|||||||
return target;
|
return target;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
* https://gist.github.com/jed/982883?permalink_comment_id=852670#gistcomment-852670
|
||||||
|
*/
|
||||||
|
uuidv4: function() {
|
||||||
|
return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,a=>(a^Math.random()*16>>a/4).toString(16));
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if the types of two slots are compatible (taking into account wildcards, etc)
|
* Returns if the types of two slots are compatible (taking into account wildcards, etc)
|
||||||
* @method isValidConnection
|
* @method isValidConnection
|
||||||
@ -1407,7 +1418,12 @@
|
|||||||
console.warn(
|
console.warn(
|
||||||
"LiteGraph: there is already a node with this ID, changing it"
|
"LiteGraph: there is already a node with this ID, changing it"
|
||||||
);
|
);
|
||||||
node.id = ++this.last_node_id;
|
if (LiteGraph.use_uuids) {
|
||||||
|
node.id = LiteGraph.uuidv4();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
node.id = ++this.last_node_id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this._nodes.length >= LiteGraph.MAX_NUMBER_OF_NODES) {
|
if (this._nodes.length >= LiteGraph.MAX_NUMBER_OF_NODES) {
|
||||||
@ -1415,10 +1431,16 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
//give him an id
|
//give him an id
|
||||||
if (node.id == null || node.id == -1) {
|
if (LiteGraph.use_uuids) {
|
||||||
node.id = ++this.last_node_id;
|
if (node.id == null || node.id == -1)
|
||||||
} else if (this.last_node_id < node.id) {
|
node.id = LiteGraph.uuidv4();
|
||||||
this.last_node_id = node.id;
|
}
|
||||||
|
else {
|
||||||
|
if (node.id == null || node.id == -1) {
|
||||||
|
node.id = ++this.last_node_id;
|
||||||
|
} else if (this.last_node_id < node.id) {
|
||||||
|
this.last_node_id = node.id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
node.graph = this;
|
node.graph = this;
|
||||||
@ -2415,7 +2437,12 @@
|
|||||||
enumerable: true
|
enumerable: true
|
||||||
});
|
});
|
||||||
|
|
||||||
this.id = -1; //not know till not added
|
if (LiteGraph.use_uuids) {
|
||||||
|
this.id = LiteGraph.uuidv4();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.id = -1; //not know till not added
|
||||||
|
}
|
||||||
this.type = null;
|
this.type = null;
|
||||||
|
|
||||||
//inputs available: array of inputs
|
//inputs available: array of inputs
|
||||||
@ -2629,6 +2656,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
delete data["id"];
|
delete data["id"];
|
||||||
|
|
||||||
|
if (LiteGraph.use_uuids) {
|
||||||
|
data["id"] = LiteGraph.uuidv4()
|
||||||
|
}
|
||||||
|
|
||||||
//remove links
|
//remove links
|
||||||
node.configure(data);
|
node.configure(data);
|
||||||
|
|
||||||
@ -3540,8 +3572,8 @@
|
|||||||
/**
|
/**
|
||||||
* computes the minimum size of a node according to its inputs and output slots
|
* computes the minimum size of a node according to its inputs and output slots
|
||||||
* @method computeSize
|
* @method computeSize
|
||||||
* @param {number} minHeight
|
* @param {vec2} minHeight
|
||||||
* @return {number} the total size
|
* @return {vec2} the total size
|
||||||
*/
|
*/
|
||||||
LGraphNode.prototype.computeSize = function(out) {
|
LGraphNode.prototype.computeSize = function(out) {
|
||||||
if (this.constructor.size) {
|
if (this.constructor.size) {
|
||||||
@ -4280,9 +4312,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var nextId
|
||||||
|
if (LiteGraph.use_uuids)
|
||||||
|
nextId = LiteGraph.uuidv4();
|
||||||
|
else
|
||||||
|
nextId = ++this.graph.last_link_id;
|
||||||
|
|
||||||
//create link class
|
//create link class
|
||||||
link_info = new LLink(
|
link_info = new LLink(
|
||||||
++this.graph.last_link_id,
|
nextId,
|
||||||
input.type || output.type,
|
input.type || output.type,
|
||||||
this.id,
|
this.id,
|
||||||
slot,
|
slot,
|
||||||
@ -6023,6 +6061,9 @@ LGraphNode.prototype.executeAction = function(action)
|
|||||||
//it wasn't clicked on the links boxes
|
//it wasn't clicked on the links boxes
|
||||||
if (!skip_action) {
|
if (!skip_action) {
|
||||||
var block_drag_node = false;
|
var block_drag_node = false;
|
||||||
|
if(node && node.flags && node.flags.pinned) {
|
||||||
|
block_drag_node = true;
|
||||||
|
}
|
||||||
var pos = [e.canvasX - node.pos[0], e.canvasY - node.pos[1]];
|
var pos = [e.canvasX - node.pos[0], e.canvasY - node.pos[1]];
|
||||||
|
|
||||||
//widgets
|
//widgets
|
||||||
@ -7070,6 +7111,8 @@ LGraphNode.prototype.executeAction = function(action)
|
|||||||
var selected_nodes_array = [];
|
var selected_nodes_array = [];
|
||||||
for (var i in this.selected_nodes) {
|
for (var i in this.selected_nodes) {
|
||||||
var node = this.selected_nodes[i];
|
var node = this.selected_nodes[i];
|
||||||
|
if (node.clonable === false)
|
||||||
|
continue;
|
||||||
node._relative_id = index;
|
node._relative_id = index;
|
||||||
selected_nodes_array.push(node);
|
selected_nodes_array.push(node);
|
||||||
index += 1;
|
index += 1;
|
||||||
@ -7077,12 +7120,12 @@ LGraphNode.prototype.executeAction = function(action)
|
|||||||
|
|
||||||
for (var i = 0; i < selected_nodes_array.length; ++i) {
|
for (var i = 0; i < selected_nodes_array.length; ++i) {
|
||||||
var node = selected_nodes_array[i];
|
var node = selected_nodes_array[i];
|
||||||
var cloned = node.clone();
|
var cloned = node.clone();
|
||||||
if(!cloned)
|
if(!cloned)
|
||||||
{
|
{
|
||||||
console.warn("node type not found: " + node.type );
|
console.warn("node type not found: " + node.type );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
clipboard_info.nodes.push(cloned.serialize());
|
clipboard_info.nodes.push(cloned.serialize());
|
||||||
if (node.inputs && node.inputs.length) {
|
if (node.inputs && node.inputs.length) {
|
||||||
for (var j = 0; j < node.inputs.length; ++j) {
|
for (var j = 0; j < node.inputs.length; ++j) {
|
||||||
@ -9952,7 +9995,7 @@ LGraphNode.prototype.executeAction = function(action)
|
|||||||
break;
|
break;
|
||||||
case "slider":
|
case "slider":
|
||||||
var old_value = w.value;
|
var old_value = w.value;
|
||||||
var nvalue = Math.clamp((x - 15) / (widget_width - 30), 0, 1);
|
var nvalue = clamp((x - 15) / (widget_width - 30), 0, 1);
|
||||||
if(w.options.read_only) break;
|
if(w.options.read_only) break;
|
||||||
w.value = w.options.min + (w.options.max - w.options.min) * nvalue;
|
w.value = w.options.min + (w.options.max - w.options.min) * nvalue;
|
||||||
if (old_value != w.value) {
|
if (old_value != w.value) {
|
||||||
@ -12949,7 +12992,7 @@ LGraphNode.prototype.executeAction = function(action)
|
|||||||
var newSelected = {};
|
var newSelected = {};
|
||||||
|
|
||||||
var fApplyMultiNode = function(node){
|
var fApplyMultiNode = function(node){
|
||||||
if (node.clonable == false) {
|
if (node.clonable === false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var newnode = node.clone();
|
var newnode = node.clone();
|
||||||
@ -13344,82 +13387,6 @@ LGraphNode.prototype.executeAction = function(action)
|
|||||||
};
|
};
|
||||||
|
|
||||||
//API *************************************************
|
//API *************************************************
|
||||||
//like rect but rounded corners
|
|
||||||
if (typeof(window) != "undefined" && window.CanvasRenderingContext2D && !window.CanvasRenderingContext2D.prototype.roundRect) {
|
|
||||||
window.CanvasRenderingContext2D.prototype.roundRect = function(
|
|
||||||
x,
|
|
||||||
y,
|
|
||||||
w,
|
|
||||||
h,
|
|
||||||
radius,
|
|
||||||
radius_low
|
|
||||||
) {
|
|
||||||
var top_left_radius = 0;
|
|
||||||
var top_right_radius = 0;
|
|
||||||
var bottom_left_radius = 0;
|
|
||||||
var bottom_right_radius = 0;
|
|
||||||
|
|
||||||
if ( radius === 0 )
|
|
||||||
{
|
|
||||||
this.rect(x,y,w,h);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(radius_low === undefined)
|
|
||||||
radius_low = radius;
|
|
||||||
|
|
||||||
//make it compatible with official one
|
|
||||||
if(radius != null && radius.constructor === Array)
|
|
||||||
{
|
|
||||||
if(radius.length == 1)
|
|
||||||
top_left_radius = top_right_radius = bottom_left_radius = bottom_right_radius = radius[0];
|
|
||||||
else if(radius.length == 2)
|
|
||||||
{
|
|
||||||
top_left_radius = bottom_right_radius = radius[0];
|
|
||||||
top_right_radius = bottom_left_radius = radius[1];
|
|
||||||
}
|
|
||||||
else if(radius.length == 4)
|
|
||||||
{
|
|
||||||
top_left_radius = radius[0];
|
|
||||||
top_right_radius = radius[1];
|
|
||||||
bottom_left_radius = radius[2];
|
|
||||||
bottom_right_radius = radius[3];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else //old using numbers
|
|
||||||
{
|
|
||||||
top_left_radius = radius || 0;
|
|
||||||
top_right_radius = radius || 0;
|
|
||||||
bottom_left_radius = radius_low || 0;
|
|
||||||
bottom_right_radius = radius_low || 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//top right
|
|
||||||
this.moveTo(x + top_left_radius, y);
|
|
||||||
this.lineTo(x + w - top_right_radius, y);
|
|
||||||
this.quadraticCurveTo(x + w, y, x + w, y + top_right_radius);
|
|
||||||
|
|
||||||
//bottom right
|
|
||||||
this.lineTo(x + w, y + h - bottom_right_radius);
|
|
||||||
this.quadraticCurveTo(
|
|
||||||
x + w,
|
|
||||||
y + h,
|
|
||||||
x + w - bottom_right_radius,
|
|
||||||
y + h
|
|
||||||
);
|
|
||||||
|
|
||||||
//bottom left
|
|
||||||
this.lineTo(x + bottom_right_radius, y + h);
|
|
||||||
this.quadraticCurveTo(x, y + h, x, y + h - bottom_left_radius);
|
|
||||||
|
|
||||||
//top left
|
|
||||||
this.lineTo(x, y + bottom_left_radius);
|
|
||||||
this.quadraticCurveTo(x, y, x + top_left_radius, y);
|
|
||||||
};
|
|
||||||
}//if
|
|
||||||
|
|
||||||
function compareObjects(a, b) {
|
function compareObjects(a, b) {
|
||||||
for (var i in a) {
|
for (var i in a) {
|
||||||
if (a[i] != b[i]) {
|
if (a[i] != b[i]) {
|
||||||
@ -14148,10 +14115,10 @@ LGraphNode.prototype.executeAction = function(action)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if( !is_edge_point ) //not edges
|
if( !is_edge_point ) //not edges
|
||||||
point[0] = Math.clamp(x,0,1);
|
point[0] = clamp(x, 0, 1);
|
||||||
else
|
else
|
||||||
point[0] = s == 0 ? 0 : 1;
|
point[0] = s == 0 ? 0 : 1;
|
||||||
point[1] = 1.0 - Math.clamp(y,0,1);
|
point[1] = 1.0 - clamp(y, 0, 1);
|
||||||
points.sort(function(a,b){ return a[0] - b[0]; });
|
points.sort(function(a,b){ return a[0] - b[0]; });
|
||||||
this.selected = points.indexOf(point);
|
this.selected = points.indexOf(point);
|
||||||
this.must_update = true;
|
this.must_update = true;
|
||||||
@ -14300,9 +14267,10 @@ LGraphNode.prototype.executeAction = function(action)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Math.clamp = function(v, a, b) {
|
function clamp(v, a, b) {
|
||||||
return a > v ? a : b < v ? b : v;
|
return a > v ? a : b < v ? b : v;
|
||||||
};
|
};
|
||||||
|
global.clamp = clamp;
|
||||||
|
|
||||||
if (typeof window != "undefined" && !window["requestAnimationFrame"]) {
|
if (typeof window != "undefined" && !window["requestAnimationFrame"]) {
|
||||||
window.requestAnimationFrame =
|
window.requestAnimationFrame =
|
||||||
@ -14316,6 +14284,13 @@ LGraphNode.prototype.executeAction = function(action)
|
|||||||
|
|
||||||
if (typeof exports != "undefined") {
|
if (typeof exports != "undefined") {
|
||||||
exports.LiteGraph = this.LiteGraph;
|
exports.LiteGraph = this.LiteGraph;
|
||||||
|
exports.LGraph = this.LGraph;
|
||||||
|
exports.LLink = this.LLink;
|
||||||
|
exports.LGraphNode = this.LGraphNode;
|
||||||
|
exports.LGraphGroup = this.LGraphGroup;
|
||||||
|
exports.DragAndScale = this.DragAndScale;
|
||||||
|
exports.LGraphCanvas = this.LGraphCanvas;
|
||||||
|
exports.ContextMenu = this.ContextMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user