Prompt Weight Scheduler ⏳
Animate a prompt's emphasis across frames instead of freezing it
- weighted_prompt
- weight
Most prompt weights are static: (masterpiece:1.2) stays 1.2 for every frame of the generation. Prompt Weight Scheduler ⏳ is for the opposite case - a token whose emphasis should move over a range of frames. It interpolates a token's weight between a start and end value across a frame range, along a curve you pick, and returns a ready-to-use (token:weight) fragment plus the raw float.
Built for animation and gradual-emphasis batch work: a subject that fades into the foreground, a style that strengthens as the sequence progresses, a character that steps out of the frame. If you've ever wanted the attention weight itself to be a keyframed value, this is that.
How it works
The interpolation is straightforward. current_frame over total_frames gives a progress t, and curve shapes it: linear, ease_in (t² - slow start, fast finish), ease_out (accelerating start), or ease_in_out. The weight at that point is lerped between start_weight and end_weight (both 0.0–3.0, defaults 0.5 → 1.5). Outputs are weighted_prompt - the (token:weight) fragment, ready to splice into a prompt - and weight, the raw float for anything that wants the number itself.
The inputs that matter
token, start_weight, end_weight, current_frame, total_frames, curve. The ones you'll actually think about: total_frames should match your video/animation frame count, and curve decides whether the change feels mechanical or eased. current_frame is the value you drive - a frame counter from your video loop or batch setup makes the whole node automatic.
For a static single-value version of the same idea, the pack's CLIP Text Weight node does the fixed-emphasis case; this one is specifically for when the emphasis itself needs to move. It's the fragment producer, so wire weighted_prompt into a combiner or encoder, and feed weight to anything that wants the numeric value.
Installing it
Part of OmniNodes:
cd ComfyUI/custom_nodes/
git clone https://github.com/TensorVizion/OmniNodes
Restart ComfyUI (or search "OmniNodes" in ComfyUI Manager). No extra dependencies. Registers under TensorVizion/Prompt. If it doesn't appear after install, restart completely and check the terminal for [OmniNodes] ✅ Loaded lines.
The honest caveat: this schedules the prompt fragment; it doesn't drive a per-frame sampler by itself. On most video workflows that means pairing it with a per-frame re-encode loop - the node is one clean piece of a bigger mechanism, not the whole thing. But as that piece, it's the difference between hand-editing weights per frame and letting the curve do it.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| token | STRING | masterpiece | — |
| start_weight | FLOAT | 0.500–3 | — |
| end_weight | FLOAT | 1.500–3 | — |
| current_frame | INT | 00–999999 | — |
| total_frames | INT | 241–999999 | — |
| curve | COMBO | linear | 4 options: linear, ease_in, ease_out, ease_in_out |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| weighted_prompt | STRING | — |
| weight | FLOAT | — |