Files
CavinHuang-comfyui-nodes-docs/docs/ConditioningSetMaskAndCombine.md
2024-07-04 11:34:32 +08:00

3.6 KiB

Documentation

  • Class name: ConditioningSetMaskAndCombine
  • Category: KJNodes/masking/conditioning
  • Output node: False

该节点旨在对条件数据应用蒙版,根据指定的蒙版及其强度调整条件。它结合了设置蒙版和合并条件数据的功能,允许动态改变给定数据集中的条件区域。

Input types

Required

  • positive_i
    • 指定一组受相应蒙版正面影响的条件数据,在将条件定制到数据的特定区域或方面中起关键作用。
    • Comfy dtype: CONDITIONING
    • Python dtype: torch.Tensor
  • negative_i
    • 指定一组受相应蒙版负面影响的条件数据,对于从条件中排除或减弱某些区域或方面至关重要。
    • Comfy dtype: CONDITIONING
    • Python dtype: torch.Tensor
  • mask_i
    • 应用于相应条件数据的蒙版,决定正面或负面条件调整的影响区域。
    • Comfy dtype: MASK
    • Python dtype: torch.Tensor
  • mask_i_strength
    • 定义蒙版对条件的影响强度,允许对蒙版如何显著影响条件进行精细控制。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • set_cond_area
    • 决定是将条件区域设置为蒙版的边界还是使用默认设置,影响条件调整的范围和精度。
    • Comfy dtype: COMBO[STRING]
    • Python dtype: bool

Output types

  • combined_positive
    • 蒙版应用后所有正面条件数据的组合结果,反映了正面调整的累积效果。
    • Comfy dtype: CONDITIONING
    • Python dtype: torch.Tensor
  • combined_negative
    • 蒙版应用后所有负面条件数据的组合结果,反映了负面调整的累积效果。
    • Comfy dtype: CONDITIONING
    • Python dtype: torch.Tensor

Usage tips

  • Infra type: CPU
  • Common nodes: unknown

Source code

class ConditioningSetMaskAndCombine:
    @classmethod
    def INPUT_TYPES(cls):
        return {
            "required": {
                "positive_1": ("CONDITIONING", ),
                "negative_1": ("CONDITIONING", ),
                "positive_2": ("CONDITIONING", ),
                "negative_2": ("CONDITIONING", ),
                "mask_1": ("MASK", ),
                "mask_2": ("MASK", ),
                "mask_1_strength": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.01}),
                "mask_2_strength": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.01}),
                "set_cond_area": (["default", "mask bounds"],),
            }
        }

    RETURN_TYPES = ("CONDITIONING","CONDITIONING",)
    RETURN_NAMES = ("combined_positive", "combined_negative",)
    FUNCTION = "append"
    CATEGORY = "KJNodes/masking/conditioning"
    DESCRIPTION = """
Bundles multiple conditioning mask and combine nodes into one,functionality is identical to ComfyUI native nodes
"""

    def append(self, positive_1, negative_1, positive_2, negative_2, mask_1, mask_2, set_cond_area, mask_1_strength, mask_2_strength):
        c = []
        c2 = []
        set_area_to_bounds = False
        if set_cond_area != "default":
            set_area_to_bounds = True
        if len(mask_1.shape) < 3:
            mask_1 = mask_1.unsqueeze(0)
        if len(mask_2.shape) < 3:
            mask_2 = mask_2.unsqueeze(0)
        for t in positive_1:
            append_helper(t, mask_1, c, set_area_to_bounds, mask_1_strength)
        for t in positive_2:
            append_helper(t, mask_2, c, set_area_to_bounds, mask_2_strength)
        for t in negative_1:
            append_helper(t, mask_1, c2, set_area_to_bounds, mask_1_strength)
        for t in negative_2:
            append_helper(t, mask_2, c2, set_area_to_bounds, mask_2_strength)
        return (c, c2)