- Class name: MultivalScaledMaskNode
- Category: Animate Diff 🎭🅐🅓/multival
- Output node: False
- Repo Ref: https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved.git
MultivalScaledMaskNode 类旨在通过在指定范围内缩放给定的掩码张量来转换它。它根据所选的缩放类型应用线性转换或归一化,确保输出掩码适合在动画或可视化应用程序中进行进一步处理。
- min_float_val
- 最小浮点值参数定义了掩码张量缩放范围的下限。它在设置掩码的缩放比例中起着至关重要的作用,确保缩放后的最小值如指定的那样。
- Comfy dtype: FLOAT
- Python dtype: float
- max_float_val
- 最大浮点值参数设置了掩码张量缩放的上限。它对于确定掩码的缩放比例至关重要,确保缩放后的最大值与期望的最大值一致。
- Comfy dtype: FLOAT
- Python dtype: float
- mask
- 掩码参数是一个张量,它将根据指定的最小和最大浮点值进行缩放。它是节点操作的核心元素,因为缩放直接应用于此张量以实现所需的多值效果。
- Comfy dtype: MASK
- Python dtype: torch.Tensor
- scaling
- 缩放参数确定要应用于掩码张量的缩放类型。它可以是绝对的或相对的,影响如何在指定范围内调整掩码值。
- Comfy dtype: ScaleType.LIST
- Python dtype: str
- multival
- MultivalScaledMaskNode 的输出是一个多值张量,代表缩放后的掩码。它非常重要,因为它是节点操作的直接结果,可用于后续的动画或可视化任务。
- Comfy dtype: MULTIVAL
- Python dtype: torch.Tensor
- Infra type: CPU
class MultivalScaledMaskNode:
@classmethod
def INPUT_TYPES(s):
return {'required': {'min_float_val': ('FLOAT', {'default': 0.0, 'min': 0.0, 'step': 0.001}), 'max_float_val': ('FLOAT', {'default': 1.0, 'min': 0.0, 'step': 0.001}), 'mask': ('MASK',)}, 'optional': {'scaling': (ScaleType.LIST,)}}
RETURN_TYPES = ('MULTIVAL',)
CATEGORY = 'Animate Diff 🎭🅐🅓/multival'
FUNCTION = 'create_multival'
def create_multival(self, min_float_val: float, max_float_val: float, mask: Tensor, scaling: str=ScaleType.ABSOLUTE):
if isinstance(min_float_val, Iterable):
raise ValueError(f'min_float_val must be type float (no lists allowed here), not {type(min_float_val).__name__}.')
if isinstance(max_float_val, Iterable):
raise ValueError(f'max_float_val must be type float (no lists allowed here), not {type(max_float_val).__name__}.')
if scaling == ScaleType.ABSOLUTE:
mask = linear_conversion(mask.clone(), new_min=min_float_val, new_max=max_float_val)
elif scaling == ScaleType.RELATIVE:
mask = normalize_min_max(mask.clone(), new_min=min_float_val, new_max=max_float_val)
else:
raise ValueError(f"scaling '{scaling}' not recognized.")
return MultivalDynamicNode.create_multival(self, mask_optional=mask)