mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-09 21:12:36 +08:00
Merge branch 'comfyanonymous:master' into feature/maskpainting
This commit is contained in:
commit
025fcacf0e
32
nodes.py
32
nodes.py
@ -59,6 +59,36 @@ class ConditioningCombine:
|
|||||||
def combine(self, conditioning_1, conditioning_2):
|
def combine(self, conditioning_1, conditioning_2):
|
||||||
return (conditioning_1 + conditioning_2, )
|
return (conditioning_1 + conditioning_2, )
|
||||||
|
|
||||||
|
class ConditioningAverage :
|
||||||
|
@classmethod
|
||||||
|
def INPUT_TYPES(s):
|
||||||
|
return {"required": {"conditioning_to": ("CONDITIONING", ), "conditioning_from": ("CONDITIONING", ),
|
||||||
|
"conditioning_to_strength": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01})
|
||||||
|
}}
|
||||||
|
RETURN_TYPES = ("CONDITIONING",)
|
||||||
|
FUNCTION = "addWeighted"
|
||||||
|
|
||||||
|
CATEGORY = "conditioning"
|
||||||
|
|
||||||
|
def addWeighted(self, conditioning_to, conditioning_from, conditioning_to_strength):
|
||||||
|
out = []
|
||||||
|
|
||||||
|
if len(conditioning_from) > 1:
|
||||||
|
print("Warning: ConditioningAverage conditioning_from contains more than 1 cond, only the first one will actually be applied to conditioning_to.")
|
||||||
|
|
||||||
|
cond_from = conditioning_from[0][0]
|
||||||
|
|
||||||
|
for i in range(len(conditioning_to)):
|
||||||
|
t1 = conditioning_to[i][0]
|
||||||
|
t0 = cond_from[:,:t1.shape[1]]
|
||||||
|
if t0.shape[1] < t1.shape[1]:
|
||||||
|
t0 = torch.cat([t0] + [torch.zeros((1, (t1.shape[1] - t0.shape[1]), t1.shape[2]))], dim=1)
|
||||||
|
|
||||||
|
tw = torch.mul(t1, conditioning_to_strength) + torch.mul(t0, (1.0 - conditioning_to_strength))
|
||||||
|
n = [tw, conditioning_to[i][1].copy()]
|
||||||
|
out.append(n)
|
||||||
|
return (out, )
|
||||||
|
|
||||||
class ConditioningSetArea:
|
class ConditioningSetArea:
|
||||||
@classmethod
|
@classmethod
|
||||||
def INPUT_TYPES(s):
|
def INPUT_TYPES(s):
|
||||||
@ -1143,6 +1173,7 @@ NODE_CLASS_MAPPINGS = {
|
|||||||
"ImageScale": ImageScale,
|
"ImageScale": ImageScale,
|
||||||
"ImageInvert": ImageInvert,
|
"ImageInvert": ImageInvert,
|
||||||
"ImagePadForOutpaint": ImagePadForOutpaint,
|
"ImagePadForOutpaint": ImagePadForOutpaint,
|
||||||
|
"ConditioningAverage ": ConditioningAverage ,
|
||||||
"ConditioningCombine": ConditioningCombine,
|
"ConditioningCombine": ConditioningCombine,
|
||||||
"ConditioningSetArea": ConditioningSetArea,
|
"ConditioningSetArea": ConditioningSetArea,
|
||||||
"ConditioningSetMask": ConditioningSetMask,
|
"ConditioningSetMask": ConditioningSetMask,
|
||||||
@ -1194,6 +1225,7 @@ NODE_DISPLAY_NAME_MAPPINGS = {
|
|||||||
"CLIPTextEncode": "CLIP Text Encode (Prompt)",
|
"CLIPTextEncode": "CLIP Text Encode (Prompt)",
|
||||||
"CLIPSetLastLayer": "CLIP Set Last Layer",
|
"CLIPSetLastLayer": "CLIP Set Last Layer",
|
||||||
"ConditioningCombine": "Conditioning (Combine)",
|
"ConditioningCombine": "Conditioning (Combine)",
|
||||||
|
"ConditioningAverage ": "Conditioning (Average)",
|
||||||
"ConditioningSetArea": "Conditioning (Set Area)",
|
"ConditioningSetArea": "Conditioning (Set Area)",
|
||||||
"ConditioningSetMask": "Conditioning (Set Mask)",
|
"ConditioningSetMask": "Conditioning (Set Mask)",
|
||||||
"ControlNetApply": "Apply ControlNet",
|
"ControlNetApply": "Apply ControlNet",
|
||||||
|
|||||||
@ -3628,6 +3628,18 @@
|
|||||||
return size;
|
return size;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
LGraphNode.prototype.inResizeCorner = function(canvasX, canvasY) {
|
||||||
|
var rows = this.outputs ? this.outputs.length : 1;
|
||||||
|
var outputs_offset = (this.constructor.slot_start_y || 0) + rows * LiteGraph.NODE_SLOT_HEIGHT;
|
||||||
|
return isInsideRectangle(canvasX,
|
||||||
|
canvasY,
|
||||||
|
this.pos[0] + this.size[0] - 15,
|
||||||
|
this.pos[1] + Math.max(this.size[1] - 15, outputs_offset),
|
||||||
|
20,
|
||||||
|
20
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* returns all the info available about a property of this node.
|
* returns all the info available about a property of this node.
|
||||||
*
|
*
|
||||||
@ -5877,14 +5889,7 @@ LGraphNode.prototype.executeAction = function(action)
|
|||||||
if ( !this.connecting_node && !node.flags.collapsed && !this.live_mode ) {
|
if ( !this.connecting_node && !node.flags.collapsed && !this.live_mode ) {
|
||||||
//Search for corner for resize
|
//Search for corner for resize
|
||||||
if ( !skip_action &&
|
if ( !skip_action &&
|
||||||
node.resizable !== false &&
|
node.resizable !== false && node.inResizeCorner(e.canvasX, e.canvasY)
|
||||||
isInsideRectangle( e.canvasX,
|
|
||||||
e.canvasY,
|
|
||||||
node.pos[0] + node.size[0] - 15,
|
|
||||||
node.pos[1] + node.size[1] - 15,
|
|
||||||
20,
|
|
||||||
20
|
|
||||||
)
|
|
||||||
) {
|
) {
|
||||||
this.graph.beforeChange();
|
this.graph.beforeChange();
|
||||||
this.resizing_node = node;
|
this.resizing_node = node;
|
||||||
@ -6424,16 +6429,7 @@ LGraphNode.prototype.executeAction = function(action)
|
|||||||
|
|
||||||
//Search for corner
|
//Search for corner
|
||||||
if (this.canvas) {
|
if (this.canvas) {
|
||||||
if (
|
if (node.inResizeCorner(e.canvasX, e.canvasY)) {
|
||||||
isInsideRectangle(
|
|
||||||
e.canvasX,
|
|
||||||
e.canvasY,
|
|
||||||
node.pos[0] + node.size[0] - 15,
|
|
||||||
node.pos[1] + node.size[1] - 15,
|
|
||||||
15,
|
|
||||||
15
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
this.canvas.style.cursor = "se-resize";
|
this.canvas.style.cursor = "se-resize";
|
||||||
} else {
|
} else {
|
||||||
this.canvas.style.cursor = "crosshair";
|
this.canvas.style.cursor = "crosshair";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user