Nodes/ComfyUI-Desert-Pixel-Nodes/DP Animation Calculator 5 Inputs
ComfyUI Node

DP Animation Calculator 5 Inputs

Build a prompt-travel schedule from five keyframes

By DesertPixelAi·Created 2 years ago·Updated about a year ago· 25
DP Animation Calculator 5 Inputs
  • Image_01_Input
  • Image_02_Input
  • Image_03_Input
  • Image_04_Input
  • Image_05_Input
  • Image_Batch_Output
  • Text_Prompt_Timing
  • fade_mask_01_timing
  • fade_mask_02_timing
  • fade_mask_03_timing
  • Check_Log
Total_Frames96
Image_01_startPoint0
Image_02_startPoint24
Image_03_startPoint48
Image_04_startPoint72
Image_05_startPoint96
Prompt_Image_01prompt 01
Prompt_Image_02prompt 02
Prompt_Image_03prompt 03
Prompt_Image_04prompt 04
Prompt_Image_05prompt 05
Transition_Frames8
fade_mask_01_Min0.0
fade_mask_01_Max1.0
fade_mask_02_Min0.0
fade_mask_02_Max1.0
fade_mask_03_Min0.0
fade_mask_03_Max1.0

Prompt-travel animation is fiddly bookkeeping. You've got several keyframes, each with its own prompt and its own start frame, and you need to hand a scheduler a correctly-formatted timing string that says "at frame 0 use this, at frame 24 use that," plus matching fade timings, all consistent with your total frame count. Getting that by hand is where mistakes creep in. This node does the arithmetic: you describe five keyframes and it spits out the schedule strings for you.

It's from DesertPixelAi's Desert-Pixel-Nodes, a large quality-of-life pack. This is one of its heavier nodes - it's not moving text around, it's computing an animation timeline. Think of it as the planning brain that sits in front of an AnimateDiff-style keyframe workflow.

How it works

You give it a total length, five images with five prompts, and a start frame for each image. It works out when each keyframe becomes active, applies a crossfade of Transition_Frames between them, and produces a batched image sequence plus the timing strings a scheduler needs - a prompt-travel string in the frame: prompt format, and separate fade-mask timing strings. You wire those outputs into your keyframe/prompt-schedule nodes and let the sampler interpolate.

A straight reality check: prompt travel's classic home, AnimateDiff, has been overtaken by Wan 2.2 and LTX for general video, and if you're starting fresh that's where the quality is. But AnimateDiff-Evolved is still maintained and a real niche keeps using it for its specific morphing look. If that's the workflow you're in, this calculator is built for it. The five-input version is the one to start with - it's the same idea as the ten-input node with a saner amount of setup.

The inputs and outputs that matter

The ones a beginner actually sets:

  • Total_Frames - the whole animation length (default 96, range 16 to 2000). Everything else is scheduled relative to this.
  • Image_01_startPointImage_05_startPoint - the frame where each keyframe kicks in. Image 1 starts at 0; the defaults step the rest evenly (0, 24, 48, 72, 96).
  • Prompt_Image_01Prompt_Image_05 - the prompt for each keyframe.
  • Transition_Frames - how many frames to crossfade between keyframes (default 8, up to 32). Bigger means smoother, slower morphs.

There's also a set of fade_mask_01/02/03 Min/Max floats for controlling fade envelopes, and five optional Image_01_Input … Image_05_Input IMAGE slots for feeding actual images per keyframe.

Outputs: Image_Batch_Output (IMAGE), Text_Prompt_Timing (STRING - the prompt-travel schedule, the key output), three fade_mask_0X_timing strings, and Check_Log (STRING). That last one is your friend - it reports what the node computed, so when the timing looks wrong you read the log instead of guessing.

How to install it

  • ComfyUI Manager: search "Desert Pixel", install, restart. No models to download.
  • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/DesertPixelAi/ComfyUI-Desert-Pixel-Nodes, pip install -r requirements.txt if present, restart.

Under the DP category. You'll also want an AnimateDiff-style prompt scheduler installed to consume the output.

Common issues

The most common mistake is start points that don't fit inside Total_Frames. If a keyframe's start frame is past the end of your animation, it never triggers, and you get a schedule that quietly drops a prompt. Keep your start points ordered and inside the total, and check Check_Log to confirm the timeline is what you intended.

The other one is feeding the raw Text_Prompt_Timing straight into a scheduler that's picky about formatting. If it errors, run the string through DP_Clean_Prompt_Travel first - that node is built to tidy exactly this format. And remember the whole thing only makes sense paired with a scheduler that understands prompt travel; on its own this node calculates a timeline but doesn't animate anything.

CategoryDP/animation

Inputs (23)

NameTypeDefaultDescription
Total_FramesINT9616–2000
Image_01_startPointINT00–0
Image_02_startPointINT240–1000
Image_03_startPointINT480–1000
Image_04_startPointINT720–1000
Image_05_startPointINT960–1000
Prompt_Image_01STRINGprompt 01
Prompt_Image_02STRINGprompt 02
Prompt_Image_03STRINGprompt 03
Prompt_Image_04STRINGprompt 04
Prompt_Image_05STRINGprompt 05
Transition_FramesINT80–32
fade_mask_01_MinFLOAT0.00–1
fade_mask_01_MaxFLOAT1.00–1
fade_mask_02_MinFLOAT0.00–1
fade_mask_02_MaxFLOAT1.00–1
fade_mask_03_MinFLOAT0.00–1
fade_mask_03_MaxFLOAT1.00–1
Image_01_InputoptIMAGE
Image_02_InputoptIMAGE
Image_03_InputoptIMAGE
Image_04_InputoptIMAGE
Image_05_InputoptIMAGE

Outputs (6)

NameTypeDescription
Image_Batch_OutputIMAGE
Text_Prompt_TimingSTRING
fade_mask_01_timingSTRING
fade_mask_02_timingSTRING
fade_mask_03_timingSTRING
Check_LogSTRING