improved: Muted inputs are now allowed for Make...List and Make...Batch.

fixed: A bug where the number of input slots did not decrease below 3 when disconnected in `Make...List` and `Make...Batch`.

https://github.com/ltdrdata/ComfyUI-Impact-Pack/issues/1052
This commit is contained in:
Dr.Lt.Data
2025-07-19 20:04:46 +09:00
parent 17e0a05769
commit e1e95c14d3
4 changed files with 20 additions and 17 deletions
+6 -1
View File
@@ -594,7 +594,12 @@ app.registerExtension({
let select_slot = this.inputs.find(x => x.name == "select");
if (!connected && (this.inputs.length > 3)) {
let widget_count = 0;
if(nodeData.name == 'ImpactSwitch' || nodeData.name == 'LatentSwitch' || nodeData.name == 'SEGSSwitch') {
widget_count += 1;
}
if (!connected && (this.inputs.length > widget_count+1)) {
if(
!stackTrace.includes('LGraphNode.prototype.connect') && // for touch device
!stackTrace.includes('LGraphNode.connect') && // for mouse device
+1 -1
View File
@@ -3,7 +3,7 @@ import os
import logging
version_code = [8, 20, 1]
version_code = [8, 21]
version = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
my_path = os.path.dirname(__file__)
+12 -14
View File
@@ -298,7 +298,7 @@ class ImpactDummyInput:
class MasksToMaskList:
@classmethod
def INPUT_TYPES(s):
return {"required": {
return {"optional": {
"masks": ("MASK", ),
}
}
@@ -473,7 +473,7 @@ class NthItemOfAnyList:
class MakeImageList:
@classmethod
def INPUT_TYPES(s):
return {"required": {"image1": ("IMAGE",), }}
return {"optional": {"image1": ("IMAGE",), }}
RETURN_TYPES = ("IMAGE",)
OUTPUT_IS_LIST = (True,)
@@ -493,7 +493,7 @@ class MakeImageList:
class MakeImageBatch:
@classmethod
def INPUT_TYPES(s):
return {"required": {"image1": ("IMAGE",), }}
return {"optional": {"image1": ("IMAGE",), }}
RETURN_TYPES = ("IMAGE",)
FUNCTION = "doit"
@@ -501,14 +501,13 @@ class MakeImageBatch:
CATEGORY = "ImpactPack/Util"
def doit(self, **kwargs):
image1 = kwargs['image1']
del kwargs['image1']
images = [value for value in kwargs.values()]
if len(images) == 0:
return (image1,)
if len(images) == 1:
return (images[0],)
else:
for image2 in images:
image1 = images[0]
for image2 in images[1:]:
if image1.shape[1:] != image2.shape[1:]:
image2 = comfy.utils.common_upscale(image2.movedim(-1, 1), image1.shape[2], image1.shape[1], "lanczos", "center").movedim(1, -1)
image1 = torch.cat((image1, image2), dim=0)
@@ -518,7 +517,7 @@ class MakeImageBatch:
class MakeMaskBatch:
@classmethod
def INPUT_TYPES(s):
return {"required": {"mask1": ("MASK",), }}
return {"optional": {"mask1": ("MASK",), }}
RETURN_TYPES = ("MASK",)
FUNCTION = "doit"
@@ -526,14 +525,13 @@ class MakeMaskBatch:
CATEGORY = "ImpactPack/Util"
def doit(self, **kwargs):
mask1 = kwargs['mask1']
del kwargs['mask1']
masks = [make_3d_mask(value) for value in kwargs.values()]
if len(masks) == 0:
return (mask1,)
if len(masks) == 1:
return (masks[0],)
else:
for mask2 in masks:
mask1 = masks[0]
for mask2 in masks[1:]:
if mask1.shape[1:] != mask2.shape[1:]:
mask2 = comfy.utils.common_upscale(mask2.movedim(-1, 1), mask1.shape[2], mask1.shape[1], "lanczos", "center").movedim(1, -1)
mask1 = torch.cat((mask1, mask2), dim=0)
+1 -1
View File
@@ -1,7 +1,7 @@
[project]
name = "comfyui-impact-pack"
description = "This node pack offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler."
version = "8.20.1"
version = "8.21"
license = { file = "LICENSE.txt" }
dependencies = ["segment-anything", "scikit-image", "piexif", "transformers", "opencv-python-headless", "GitPython", "scipy>=1.11.4"]