Files
bmad4ever-comfyui_lists_car…/node.py
T
2023-12-21 19:21:03 +00:00

37 lines
987 B
Python

from itertools import product
class AnyType(str):
"""Bypass comfy type check"""
def __ne__(self, __value: object) -> bool:
return False
class AnyListCartesianProduct:
RETURN_TYPES = tuple([AnyType("*") for _ in range(9)])
FUNCTION = "cart_prod"
CATEGORY = "utils"
OUTPUT_IS_LIST = tuple([True for _ in range(9)])
INPUT_IS_LIST = True
@classmethod
def INPUT_TYPES(cls):
return {"required": {
"inputs_len": ("INT", {"default": 2, "min": 2, "max": 9}),
}}
def cart_prod(self, inputs_len, **kwargs):
values = list(kwargs.values())[:inputs_len[0]] # ignore input names
cp_tuples = list(product(*values))
return tuple([t[i] for t in cp_tuples] for i in range(inputs_len[0]))
NODE_CLASS_MAPPINGS = {
"AnyListCartesianProduct": AnyListCartesianProduct
}
NODE_DISPLAY_NAME_MAPPINGS = {
"AnyListCartesianProduct": "Lists Cartesian Product"
}