diff --git a/pyproject.toml b/pyproject.toml index ffe7e22..e26eb98 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "Comfyui_Fd_Nodes" -version = "48.0.0" # 999开头的版本是debug版 +version = "49.0.0" # 999开头的版本是debug版 description = "Custom nodes for fd project" authors = [ {name = "xuyucai", email = "986327386@qq.com"} diff --git a/src/Comfyui_Fd_Nodes/nodes.py b/src/Comfyui_Fd_Nodes/nodes.py index 9008720..b2d930d 100644 --- a/src/Comfyui_Fd_Nodes/nodes.py +++ b/src/Comfyui_Fd_Nodes/nodes.py @@ -53,6 +53,7 @@ from .zhiyi_image_text_node import ZhiYiImageTextNode from .zhiyi_image_to_image_node import ZhiYiImageToImageNode from .toggle import NodeToggleByID from .utils.logging_utils import configure_default_logging +from .zhiyi_image_combo_node import ZhiYiImageComboNode configure_default_logging() logger = logging.getLogger(__name__) @@ -1131,6 +1132,7 @@ NODE_CLASS_MAPPINGS = { "ZhiYiImageToImageNode": ZhiYiImageToImageNode, "ZhiYiTextGenNode": ZhiYiTextGenNode, "NodeToggleByID": NodeToggleByID, + "ZhiYiImageComboNode": ZhiYiImageComboNode, } # A dictionary that contains the friendly/humanly readable titles for the nodes @@ -1150,4 +1152,5 @@ NODE_DISPLAY_NAME_MAPPINGS = { "ZhiYiImageToImageNode": "知衣-图生图", "ZhiYiTextGenNode": "知衣-文生文", "NodeToggleByID": "节点开关 (按ID)", + "ZhiYiImageComboNode": "fd-输入参数组合", } diff --git a/src/Comfyui_Fd_Nodes/zhiyi_image_combo_node.py b/src/Comfyui_Fd_Nodes/zhiyi_image_combo_node.py new file mode 100644 index 0000000..e4e6b63 --- /dev/null +++ b/src/Comfyui_Fd_Nodes/zhiyi_image_combo_node.py @@ -0,0 +1,38 @@ +class ZhiYiImageComboNode: + """知衣-图片组合节点 - 将最多6张图片+1条提示词打包为组合""" + + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "image_1": ("IMAGE",), + "prompt": ("STRING", { + "default": "", + "multiline": True, + }), + }, + "optional": { + "image_2": ("IMAGE",), + "image_3": ("IMAGE",), + "image_4": ("IMAGE",), + "image_5": ("IMAGE",), + "image_6": ("IMAGE",), + "prompt_list": ("LIST",), + }, + } + + RETURN_TYPES = ("ZHIYI_COMBO",) + RETURN_NAMES = ("combo",) + FUNCTION = "pack" + CATEGORY = "知衣/工具" + OUTPUT_NODE = False + + def pack(self, image_1, prompt, image_2=None, image_3=None, + image_4=None, image_5=None, image_6=None, prompt_list=None): + images = [t for t in [image_1, image_2, image_3, image_4, image_5, image_6] if t is not None] + prompts = [] + if prompt_list and isinstance(prompt_list, list): + prompts = [p for p in prompt_list if isinstance(p, str) and p.strip()] + if not prompts: + prompts = [prompt] + return ({"images": images, "prompt": prompt, "prompts": prompts},)