Prompt Schedule From Weights Strategy
Turn an IPAdapter fade into a prompt timeline
- weights_strategy
- prompt_schedule
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- aWEIGHTS_STRATEGYobject, 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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| weights_strategy | WEIGHTS_STRATEGY | — | |
| prompt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt_schedule | STRING | — |