Skip to content

Prompt Schedule NodeFlow 📅🅕🅝

Documentation

  • Class name: PromptScheduleNodeFlow
  • Category: FizzNodes 📅🅕🅝/ScheduleNodes
  • Output node: False

This node is designed to dynamically construct and manipulate JSON strings based on input text and numerical parameters, facilitating the scheduling of content in a structured format. It primarily serves to augment input text with additional context or parameters, thereby enabling more complex or conditional content generation workflows.

Input types

Required

  • text
    • The primary text input that will be included in the constructed JSON string, serving as the main content or subject of the scheduling operation.
    • Comfy dtype: STRING
    • Python dtype: str
  • num_frames
    • A numerical parameter that specifies the starting point for the scheduling operation, affecting the key under which the new content will be placed in the JSON structure.
    • Comfy dtype: INT
    • Python dtype: int

Optional

  • in_text
    • An optional initial JSON string to which the new content will be appended, allowing for incremental construction of complex JSON structures.
    • Comfy dtype: STRING
    • Python dtype: str
  • max_frames
    • A numerical parameter that, when combined with 'num_frames', determines the key for the new content in the JSON structure, influencing the scheduling sequence.
    • Comfy dtype: INT
    • Python dtype: int

Output types

  • int
    • Comfy dtype: INT
    • The new maximum frame count, derived from the input 'num_frames' and 'max_frames', indicating the next available key in the JSON structure.
    • Python dtype: int
  • string
    • Comfy dtype: STRING
    • The newly constructed JSON string, containing the scheduled content with keys based on the input parameters.
    • Python dtype: str

Usage tips

  • Infra type: CPU
  • Common nodes: unknown

Source code

class PromptScheduleNodeFlow:
    @classmethod
    def INPUT_TYPES(s):
        return {"required": {"text": ("STRING", {"multiline": True}),                           
                            "num_frames": ("INT", {"default": 24.0, "min": 0.0, "max": 9999.0, "step": 1.0}),},
               "optional":  {"in_text": ("STRING", {"multiline": False, }), # "forceInput": True}),
                             "max_frames": ("INT", {"default": 0.0, "min": 0.0, "max": 999999.0, "step": 1.0,})}}

    RETURN_TYPES = ("INT","STRING",)
    FUNCTION = "addString"
    CATEGORY = "FizzNodes 📅🅕🅝/ScheduleNodes"

    def addString(self, text, in_text='', max_frames=0, num_frames=0):
        if in_text:
            # Remove trailing comma from in_text if it exists
            in_text = in_text.rstrip(',')

        new_max = num_frames + max_frames

        if max_frames == 0:
            # Construct a new JSON object with a single key-value pair
            new_text = in_text + (', ' if in_text else '') + f'"{max_frames}": "{text}"'
        else:
            # Construct a new JSON object with a single key-value pair
            new_text = in_text + (', ' if in_text else '') + f'"{new_max}": "{text}"'



        return (new_max, new_text,)