Files
2024-06-29 18:50:22 +08:00

3.6 KiB

tags
tags
IPAdapter

IPAdapter Combine Params

Documentation

  • Class name: IPAdapterCombineParams
  • Category: ipadapter/params
  • Output node: False

The IPAdapterCombineParams node is designed to merge multiple sets of parameters for image processing adapters, facilitating the combination of various image attributes and effects into a single, cohesive set. This node simplifies the process of integrating multiple image processing parameters, ensuring a harmonized approach to image adaptation and enhancement.

Input types

Required

  • params_i
    • Represents a set of parameters to be combined. Each 'params_i' (where i ranges from 1 to 5) serves as an individual set of image processing attributes, contributing to the merge and enhancing the overall effect.
    • Comfy dtype: IPADAPTER_PARAMS
    • Python dtype: Dict[str, Union[str, List[str], float, bool]]

Optional

Output types

  • ipadapter_params
    • Comfy dtype: IPADAPTER_PARAMS
    • The combined set of image processing parameters, resulting from the integration of up to five individual sets. This consolidated output facilitates enhanced and harmonized image adaptation.
    • Python dtype: Dict[str, Union[str, List[str], float, bool]]

Usage tips

  • Infra type: CPU
  • Common nodes: unknown

Source code

class IPAdapterCombineParams:
    @classmethod
    def INPUT_TYPES(s):
        return {"required": {
            "params_1": ("IPADAPTER_PARAMS",),
            "params_2": ("IPADAPTER_PARAMS",),
        }, "optional": {
            "params_3": ("IPADAPTER_PARAMS",),
            "params_4": ("IPADAPTER_PARAMS",),
            "params_5": ("IPADAPTER_PARAMS",),
        }}
    
    RETURN_TYPES = ("IPADAPTER_PARAMS",)
    FUNCTION = "combine"
    CATEGORY = "ipadapter/params"

    def combine(self, params_1, params_2, params_3=None, params_4=None, params_5=None):
        ipadapter_params = {
            "image": params_1["image"] + params_2["image"],
            "attn_mask": params_1["attn_mask"] + params_2["attn_mask"],
            "weight": params_1["weight"] + params_2["weight"],
            "weight_type": params_1["weight_type"] + params_2["weight_type"],
            "start_at": params_1["start_at"] + params_2["start_at"],
            "end_at": params_1["end_at"] + params_2["end_at"],
        }

        if params_3 is not None:
            ipadapter_params["image"] += params_3["image"]
            ipadapter_params["attn_mask"] += params_3["attn_mask"]
            ipadapter_params["weight"] += params_3["weight"]
            ipadapter_params["weight_type"] += params_3["weight_type"]
            ipadapter_params["start_at"] += params_3["start_at"]
            ipadapter_params["end_at"] += params_3["end_at"]
        if params_4 is not None:
            ipadapter_params["image"] += params_4["image"]
            ipadapter_params["attn_mask"] += params_4["attn_mask"]
            ipadapter_params["weight"] += params_4["weight"]
            ipadapter_params["weight_type"] += params_4["weight_type"]
            ipadapter_params["start_at"] += params_4["start_at"]
            ipadapter_params["end_at"] += params_4["end_at"]
        if params_5 is not None:
            ipadapter_params["image"] += params_5["image"]
            ipadapter_params["attn_mask"] += params_5["attn_mask"]
            ipadapter_params["weight"] += params_5["weight"]
            ipadapter_params["weight_type"] += params_5["weight_type"]
            ipadapter_params["start_at"] += params_5["start_at"]
            ipadapter_params["end_at"] += params_5["end_at"]

        return (ipadapter_params, )