Files
CavinHuang-comfyui-nodes-docs/docs/CR Prompt List Keyframes.md
2024-05-26 20:35:16 +08:00

2.8 KiB

Documentation

CR_PromptListKeyframes 节点旨在从提示列表生成关键帧。它处理输入的提示列表,遵循特定的关键帧格式,以创建可以在动画工作流中使用的关键帧序列。此节点对于自动化关键帧创建过程至关重要,确保在生成动画序列时保持一致性和效率。

Input types

Required

  • prompt_list
    • 提示列表是节点的重要输入,因为它包含将被转换为关键帧的提示。列表中的每个提示都是关键帧的一部分,节点通过这个列表迭代以生成最终的关键帧序列。
    • Comfy dtype: PROMPT_LIST
    • Python dtype: List[Tuple[str, str, str, str, int, int]]

Optional

  • keyframe_format
    • 关键帧格式参数决定了生成的关键帧的结构和样式。尽管节点默认使用 'Deforum' 格式,但这个参数允许在未来需要支持其他格式时具有灵活性。
    • Comfy dtype: COMBO['Deforum']
    • Python dtype: Literal['Deforum']

Output types

  • keyframe_list
    • 关键帧列表是节点的主要输出,表示格式化后的关键帧字符串。这个输出可以直接用于动画软件中定义动画关键帧的序列。
    • Comfy dtype: STRING
    • Python dtype: str
  • show_help
    • 显示帮助输出提供了一个指向与节点相关联的文档或帮助页面的URL链接。这对于寻求更多信息或指导如何有效使用节点的用户来说非常有用。
    • Comfy dtype: STRING
    • Python dtype: str

Usage tips

  • Infra type: CPU

Source code

class CR_PromptListKeyframes:

    @classmethod
    def INPUT_TYPES(s):
        return {'required': {'prompt_list': ('PROMPT_LIST',), 'keyframe_format': (['Deforum'],)}}
    RETURN_TYPES = ('STRING', 'STRING')
    RETURN_NAMES = ('keyframe_list', 'show_help')
    FUNCTION = 'make_keyframes'
    CATEGORY = icons.get('Comfyroll/Animation/Legacy')

    def make_keyframes(self, prompt_list, keyframe_format):
        keyframe_format = 'Deforum'
        keyframe_list = list()
        i = 0
        for (index, prompt_tuple) in enumerate(prompt_list):
            (prompt, transition_type, transition_speed, transition_profile, keyframe_interval, loops) = prompt_tuple
            if i == 0:
                keyframe_list.extend(['"0": "' + prompt + '",\n'])
                i += keyframe_interval
                continue
            new_keyframe = '"' + str(i) + '": "' + prompt + '",\n'
            keyframe_list.extend([new_keyframe])
            i += keyframe_interval
        keyframes_out = ''.join(keyframe_list)[:-2]
        show_help = 'https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Prompt-Nodes#cr-prompt-list-keyframes'
        return (keyframes_out, show_help)