Nodes/ComfyUI_IPAdapter_plus/Prompt Schedule From Weights Strategy
ComfyUI Node Runs on cloud

Prompt Schedule From Weights Strategy

Turn an IPAdapter fade into a prompt timeline

By cubiq·Created 3 years ago·Updated about a year ago· 6,105
Prompt Schedule From Weights Strategy
  • weights_strategy
  • prompt_schedule
prompt

This is a niche but clever animation helper. When you build an IPAdapter image transition - fading reference A into reference B across a batch of frames - you often want the text prompt to follow the same timeline. This node takes the WEIGHTS_STRATEGY that describes your fade and, together with a prompt, emits a prompt schedule: a frame-keyed text string in the format batch-prompt-scheduling nodes (the FizzNodes-style ones commonly paired with AnimateDiff) expect. So your prompt keyframes line up with your image keyframes automatically, instead of you hand-typing frame numbers twice.

You'd use it in exactly one context: an animation where you're already scheduling IPAdapter weights and want the prompt to change in lockstep. Outside that, it has nothing to do. It's a convenience that saves you from keeping two separate timelines in sync by hand - which, if you've ever done it, you know is where off-by-a-few-frames bugs live.

How it works

It reads the timing information baked into a WEIGHTS_STRATEGY (the frame count, the transition points, the curve) and uses it to distribute your prompt across frames as a scheduled string. It doesn't render anything or touch a model - it produces text that a downstream prompt-scheduling node parses into per-frame conditioning.

The inputs and output

  • weights_strategy - a WEIGHTS_STRATEGY object, produced by IPAdapter Weights or IPAdapter Weights From Strategy. This is where the timeline comes from; the node reuses that exact schedule so images and prompts share it.
  • prompt - a multiline text field for the prompt(s) you want scheduled across the animation.
  • Output prompt_schedule (STRING) - the frame-keyed prompt text. Wire it into a batch prompt-scheduling node (the kind used in AnimateDiff travel/morph workflows), not directly into a normal CLIP Text Encode.

Installing the pack

ComfyUI Manager: search ComfyUI IPAdapter plus, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus

then restart, keeping ComfyUI current. This node needs no model files - it's a text transformer. But it's useless in isolation: it expects a WEIGHTS_STRATEGY coming in and a prompt-scheduling node waiting on its output, and that scheduling node typically comes from a different pack (the FizzNodes/AnimateDiff scheduling family). So make sure that pack is installed too, or you'll have a schedule string with nothing to read it.

Where people get burned

The most common stumble is treating the output like a regular prompt. It isn't - it's a formatted schedule string meant for a batch-scheduling node's parser. Plug it into a plain text-encode and you'll either get garbage or a literal rendering of the schedule syntax. Route it to the scheduler.

The second is a missing or mismatched WEIGHTS_STRATEGY. If the strategy describes 60 frames and your actual generation batch is 48, the prompt keyframes will land in the wrong places - keep the frame counts consistent across the weights node, this node, and your sampler. And the usual caveat: this whole pack is SD 1.5 / SDXL only and in maintenance mode, so the animation stack it plugs into is the SD-era AnimateDiff one, not anything on Flux.

Categoryipadapter/weights

Inputs (2)

NameTypeDefaultDescription
weights_strategyWEIGHTS_STRATEGY
promptSTRING

Outputs (1)

NameTypeDescription
prompt_scheduleSTRING