Nodes/ComfyUI-kewky_tools/Animation Schedule Output
ComfyUI Node

Animation Schedule Output

Turn a list of prompts into keyframe format

By KewkLWΒ·Created 2 years agoΒ·Updated about a year agoΒ· 9
Animation Schedule Output
    • formatted_string
    β—„unformatted_promptsβ–Ί
    β—„keyframe_interval50β–Ί
    β—„offset0β–Ί
    β—„prepend_textβ–Ί
    β—„append_textβ–Ί

    If you've ever built an animation with scheduled prompts - Deforum, FizzNodes' Batch Prompt Schedule, that whole keyframe-driven world - you know the format the scheduler wants:

    0: "a seed sprouting",
    50: "a sapling in spring",
    100: "a full tree in summer"
    

    Frame number, colon, quoted prompt, comma, repeat. Typing that by hand is fiddly and easy to get wrong, and one stray comma breaks the whole parse. Animation Schedule Output (class name FormattedPromptNode) is the little node that writes that format for you. You paste in a plain list of prompts, one per line, and it spits out the keyframe-numbered, quoted, comma-separated string a schedule node expects.

    It's a text-formatting helper, not an animation engine - but keyframe scheduling is exactly the kind of tedious, error-prone plumbing where a formatter earns its place. The scheduled-prompt technique itself dates to the Deforum era and carried into AnimateDiff workflows, where prompts drive keyframe transitions across a clip.

    How it works

    You give it your prompts as multi-line text - each line becomes one keyframe. The node walks the lines and assigns each a frame number, spaced by the interval you set: line one at frame 0, line two at keyframe_interval, line three at 2 x keyframe_interval, and so on. It wraps each prompt in quotes and joins them with commas into the schedule syntax. Optionally it shifts the whole thing by an offset, and wraps each line with fixed text you want on every keyframe.

    The inputs and outputs that matter

    • unformatted_prompts - your prompts, one per line, pasted straight in. This is the input you actually work with.
    • keyframe_interval (default 50) - the frame gap between keyframes. At 50, prompts land on frames 0, 50, 100… Match this to how long you want each prompt to hold before the next transition.
    • offset (optional, default 0) - shifts every keyframe number up by this amount, for when your schedule shouldn't start at frame 0.
    • prepend_text / append_text (optional) - text glued to the front or back of every line. Handy for a shared style suffix ("… cinematic, film grain") or a quality prefix you want on all keyframes without retyping it.

    The single output is formatted_string (STRING) - wire it straight into the prompt/text input of your schedule node (FizzNodes Batch Prompt Schedule, a Deforum-style prompt input, or anything that reads that keyframe syntax).

    How to install it

    • ComfyUI Manager - search ComfyUI-kewky_tools, install, restart.
    • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/KewkLW/ComfyUI-kewky_tools.git, then restart.

    No dependencies, no downloads. It's one of the pack's original nodes and loads instantly.

    Common issues & troubleshooting

    The schedule node rejects the output. Almost always a mismatch with what the downstream node expects. This produces the common frame: "prompt" keyframe format, but different schedulers are picky about trailing commas, quote style, or whether they want a wrapping object. Preview the formatted_string (route it into a display node) and eyeball it against a working example from your scheduler's docs before blaming the formatter.

    Keyframes are spaced wrong. That's keyframe_interval. If transitions feel rushed or dragged, this is the knob - it's frames, not seconds, so factor in your output frame rate.

    Every line got the same prefix and I didn't want that. prepend_text / append_text apply to all lines. If you only want shared text on some keyframes, bake it into those specific prompt lines instead.

    Don't over-cook the prompts themselves. Scheduling is about where prompts change, not a license to write essays at each keyframe. On modern LLM-encoded models especially, long stuffed prompts drift past the attention cap - keep each keyframe to a few strong concepts, and let the schedule do the storytelling.

    CategoryπŸ§”πŸ»β€β™‚οΈπŸ‡° πŸ‡ͺ πŸ‡Ό πŸ‡°

    Inputs (5)

    NameTypeDefaultDescription
    unformatted_promptsSTRINGβ€”
    keyframe_intervalINT501–8192β€”
    offsetoptINT0β€”
    prepend_textoptSTRINGβ€”
    append_textoptSTRINGβ€”

    Outputs (1)

    NameTypeDescription
    formatted_stringSTRINGβ€”