- Class name: ADKeyframeNode
- Category: Animate Diff 🎭🅐🅓
- Output node: False
- Repo Ref: https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved.git
ADKeyframeNode 类用于管理动画差异的关键帧。它提供加载和操作关键帧的功能,确保动画序列的连贯性和明确性。此节点对于创建平滑过渡和维护整个动画序列的完整性至关重要。
- start_percent
- start_percent 参数定义了关键帧在动画时间线中的起始位置。它对于确定动画的时机和确保关键帧序列的正确排序至关重要。
- Comfy dtype: FLOAT
- Python dtype: float
- prev_ad_keyframes
- prev_ad_keyframes 参数允许用户提供一组先前的关键帧,新的关键帧将被添加到这些关键帧中。这对于保持连续性并在现有动画框架上构建至关重要。
- Comfy dtype: AD_KEYFRAMES
- Python dtype: ADKeyframeGroup
- scale_multival
- scale_multival 参数调整关键帧处动画的缩放。它对于控制动画变化的强度和在序列特定点的范围至关重要。
- Comfy dtype: MULTIVAL
- Python dtype: Union[float, torch.Tensor]
- effect_multival
- effect_multival 参数用于修改关键帧处的效果强度。它在微调动画在特定时刻的视觉影响中起着至关重要的作用。
- Comfy dtype: MULTIVAL
- Python dtype: Union[float, torch.Tensor]
- inherit_missing
- inherit_missing 参数决定关键帧是否应该从先前的关键帧继承属性,如果它们没有被明确定义的话。这对于维护整个序列中一致的动画风格至关重要。
- Comfy dtype: BOOLEAN
- Python dtype: bool
- guarantee_steps
- guarantee_steps 参数确保关键帧之间的最小步数,这对于动画的平滑度和流畅性很重要。
- Comfy dtype: INT
- Python dtype: int
- AD_KEYFRAMES
- ADKeyframeNode 的输出是一组关键帧,代表了带有新添加或修改的关键帧的动画序列。这个输出对于动画的后续处理和渲染非常重要。
- Comfy dtype: AD_KEYFRAMES
- Python dtype: ADKeyframeGroup
- Infra type: CPU
class ADKeyframeNode:
@classmethod
def INPUT_TYPES(s):
return {'required': {'start_percent': ('FLOAT', {'default': 0.0, 'min': 0.0, 'max': 1.0, 'step': 0.001})}, 'optional': {'prev_ad_keyframes': ('AD_KEYFRAMES',), 'scale_multival': ('MULTIVAL',), 'effect_multival': ('MULTIVAL',), 'inherit_missing': ('BOOLEAN', {'default': True}), 'guarantee_steps': ('INT', {'default': 1, 'min': 0, 'max': BIGMAX})}}
RETURN_TYPES = ('AD_KEYFRAMES',)
FUNCTION = 'load_keyframe'
CATEGORY = 'Animate Diff 🎭🅐🅓'
def load_keyframe(self, start_percent: float, prev_ad_keyframes=None, scale_multival: Union[float, torch.Tensor]=None, effect_multival: Union[float, torch.Tensor]=None, inherit_missing: bool=True, guarantee_steps: int=1):
if not prev_ad_keyframes:
prev_ad_keyframes = ADKeyframeGroup()
prev_ad_keyframes = prev_ad_keyframes.clone()
keyframe = ADKeyframe(start_percent=start_percent, scale_multival=scale_multival, effect_multival=effect_multival, inherit_missing=inherit_missing, guarantee_steps=guarantee_steps)
prev_ad_keyframes.add(keyframe)
return (prev_ad_keyframes,)