Nodes/Deforum Nodes/(deforum) Blend Conditionings
ComfyUI Node

(deforum) Blend Conditionings

Smoothly morph your prompt into the next one mid-animation

By XmYx·Created 3 years ago·Updated 3 months ago· 198
(deforum) Blend Conditionings
  • clip
  • deforum_frame_data
  • POSITIVE
  • NEGATIVE
blend_method

Abrupt prompt changes mid-animation are jarring - the scene doesn't just change, it teleports for a few frames while the sampler adapts. (deforum) Blend Conditionings is the node that makes prompt transitions feel deliberate. Instead of snapping from "a castle at dawn" to "a castle at night," it encodes the current prompt and the next prompt, and blends the two conditioning tensors together using a prompt_blend value that ramps over the transition. The result is a smooth crossfade in conditioning space - one of the techniques that separates "slideshow with motion" from "animation."

How it works

The node reads the current prompt, the next_prompt, and the prompt_blend amount out of the deforum_frame_data it's fed - those come from your prompt/keyframe scheduling upstream. It encodes the current prompt with the CLIP you provide, encodes the next prompt the same way, and blends the two conditioning tensors by prompt_blend using the blend_method you pick. The negative prompt is encoded and passed through. Outputs are POSITIVE and NEGATIVE conditionings ready for your sampler.

The blend_method dropdown (linear, sigmoidal, gaussian, pyramid, none) changes the character of the blend. Linear is the simple weighted average; sigmoidal and gaussian give a gentler, more organic transition (with a slower start/end); pyramid is a multi-scale blend that preserves more structure. none disables blending - useful as a baseline comparison. When prompt_blend is 0 (or the next prompt equals the current), it just encodes the current prompt, so the node is safe to leave in the graph permanently.

There's also a regional path: if your frame data carries areas (area/region prompts), the node switches to ComfyUI's region-conditioning machinery (ConditioningSetArea) and blends per-region instead of globally - that's how you smoothly transition part of the frame while keeping the rest stable.

The inputs that matter

  • clip - the CLIP model for encoding both prompts.
  • deforum_frame_data - supplies prompt, next_prompt, prompt_blend, and optional areas.
  • blend_method - linear / sigmoidal / gaussian / pyramid / none.

Outputs: POSITIVE and NEGATIVE CONDITIONING, wired into the sampler.

When you need it

Any time your animation has a planned scene or subject change - a morph from one landscape to another, a character transformation, a day-to-night pass. With Deforum's keyframe scheduling you control when the blend happens and how fast via the prompt_blend schedule, and this node makes the in-between frames watchable instead of chaotic. It's also the right tool for the classic "prompt travel" effect, where a long animation slowly walks from prompt A to prompt B to prompt C.

Installing it

Part of Deforum Nodes (XmYx). ComfyUI Manager → "Deforum Nodes", or:

cd ComfyUI/custom_nodes
git clone https://github.com/XmYx/deforum-comfy-nodes.git

Restart and let first-boot install.py finish (opencv-contrib-python, moviepy, numpy<2.0.0, deforum-studio backend). Python 3.10 per the README.

Where people get burned

The classic mistake is forgetting the prompt side: this node blends conditioning, but your sampler also has its own prompt handling - if the sampler is feeding a different prompt through a different path, you get double conditioning and weird results. Keep the prompt flow going through this node. Also, blend_method choice matters more than people expect: linear on wildly different prompts can produce mush in the middle (both concepts diluted), while pyramid or sigmoidal keeps each side coherent longer. If the midpoint of your transition looks like gray soup, switch methods before you blame the prompts.

Categorydeforum/conditioning

Inputs (3)

NameTypeDefaultDescription
clipCLIP
deforum_frame_dataDEFORUM_FRAME_DATA
blend_methodCOMBO5 options: linear, sigmoidal, gaussian, pyramid, none

Outputs (2)

NameTypeDescription
POSITIVECONDITIONING
NEGATIVECONDITIONING