45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
class DynamicImageInputs:
|
|
"""动态图片输入节点
|
|
|
|
这个节点允许动态添加多个图片输入端口,并将所有输入的图片合并成一个列表输出。
|
|
|
|
特点:
|
|
1. 支持动态增减图片输入端口
|
|
2. 自动忽略未连接的输入端口
|
|
3. 输出一个包含所有输入图片的列表
|
|
|
|
使用方法:
|
|
1. 将节点添加到工作流中
|
|
2. 连接图片到输入端口
|
|
3. 使用 get_input 方法动态增加更多输入端口
|
|
"""
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
"""定义节点的输入类型
|
|
|
|
Returns:
|
|
dict: 包含默认的单个图片输入端口
|
|
"""
|
|
return {"required": {"image_1": ("IMAGE",)}}
|
|
|
|
RETURN_TYPES = ("IMAGE",) # 返回图片类型
|
|
RETURN_NAMES = ("images",) # 输出端口名称
|
|
OUTPUT_IS_LIST = (True,) # 标记输出为列表类型
|
|
FUNCTION = "process_images" # 处理函数名称
|
|
CATEGORY = "🎨Painting👓Coder/🖼️Image" # 节点分类
|
|
|
|
def process_images(self, **kwargs):
|
|
"""处理所有输入的图片
|
|
|
|
Args:
|
|
**kwargs: 包含所有输入图片的字典,键名格式为 "image_1", "image_2" 等
|
|
|
|
Returns:
|
|
tuple: 包含所有输入图片的列表
|
|
"""
|
|
images = []
|
|
for k, v in kwargs.items():
|
|
if k.startswith("image_") and v is not None:
|
|
images.append(v)
|
|
return (images,) |