3.6 KiB
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)