Prompt Travel
Interpolate between two prompts in one node
- clip
- CONDITIONING
"Prompt travel" is an old idea in this community - it's the name of a well-known A1111/AnimateDiff extension for smoothly moving from one prompt to another across a sequence of frames, and the term still shows up regularly whenever people talk about animating a generation between two concepts rather than jumping between them. This node brings the core operation into ComfyUI's conditioning graph directly: give it two prompts and a travel amount, and it hands you back the interpolated conditioning for wherever you set the dial.
How it works
You supply prompt_a, prompt_b, and a CLIP model. The node encodes both prompts and linearly interpolates between the two resulting conditioning vectors using travel_amount. At 0 you get (close to) prompt_a, at 1 you get prompt_b, and everything in between is a blend. Because the parameter range goes well past 0–1, you can also push past either endpoint and exaggerate the direction from one prompt toward the other, the same extrapolation trick the rest of this pack relies on.
This node does the interpolation for a single value - it doesn't animate anything by itself. If you want an actual prompt-travel animation, you'd drive travel_amount from a schedule (increasing it across a batch of frames, say) and let this node compute the conditioning fresh at each step.
The inputs and outputs that matter
prompt_aandprompt_b- the two endpoints of your travel. Both are plain multiline text, encoded the same way a normal CLIP Text Encode would.travel_amount- default 0.5 (the midpoint), range -100 to 100, step 0.01. This is the only thing you need to touch once your two prompts are set.clip- the CLIP model used to encode both prompts.
Output is a single CONDITIONING you feed straight to your sampler.
How to install it
Via ComfyUI Manager: search "ComfyUI-ConDelta", install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/envy-ai/ComfyUI-ConDelta
then restart. No model files and no extra Python dependencies for this node - it's straightforward tensor interpolation on top of whatever CLIP you already have loaded.
Common issues & troubleshooting
Linear blending doesn't always read as a smooth conceptual blend. This is a known soft spot in the technique generally, not something specific to a broken implementation: interpolating two encoded prompts in a straight line through vector space can produce mid-point results where elements of both prompts bleed together oddly, rather than a clean "halfway between city and jungle" image. If your midpoint looks muddier than either endpoint, that's expected behavior for linear interpolation, not a sign something's misconfigured.
Keep travel_amount inside 0–1 unless you specifically want to extrapolate. Values past either endpoint push you beyond prompt_a or prompt_b rather than toward them, which is a different (and less predictable) effect than a blend - useful deliberately, confusing by accident.
For an actual travel animation, you still need to build the schedule yourself. This node computes one interpolated conditioning per call; stepping travel_amount across frames is on you, typically with a value-schedule or batch-index node feeding it.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt_a | STRING | The text to be encoded. | |
| prompt_b | STRING | The text to be encoded. | |
| travel_amount | FLOAT | 0.50-100–100 | — |
| clip | CLIP | The CLIP model used for encoding the text. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |