LatentWalkConditional
Morph two prompts into each other in one batch
- start
- end
- CONDITIONINGS
You've seen those videos where a castle slowly melts into a city, or a photo of a dog becomes a photo of a cat over a few seconds. That's "prompt travel," and LatentWalkConditional is the short version of it. You give it two prompts, it hands back a smooth sequence of in-between prompt embeddings, and your sampler renders the whole morph in a single batch instead of you babysitting twenty chained CLIP nodes.
What it actually walks
When ComfyUI encodes a prompt, you get a CONDITIONING tensor - the text embedding your sampler conditions on. LatentWalkConditional walks that space: it takes your start and end CONDITIONING inputs (wire them straight from two CLIPTextEncode nodes), slices out both the text embeddings and the pooled_output, interpolates each one across steps cut points, and concatenates the results along the batch axis. What comes out the CONDITIONINGS output is one CONDITIONING whose batch size equals steps. Feed that to a KSampler and it draws all the frames of the morph at once.
The "how far along the walk" values come from the travel mode: linear is the boring-but-reliable default, circle swings through a circular arc in latent space, and the power modes (quadratic, cubic, quartic, geometric) bias the frames toward one end. hinge and norm are the two that actually use the factor input - it's the hinge cut point for one, the Gaussian scale for the other. Flip reflect on and the walk goes start→end→start, which is how you get a seamless loop instead of an abrupt jump back.
The blend mode is how each frame is computed from the two endpoints. lerp is the sane default; slerp (spherical interpolation) is the one people actually reach for with embeddings because it follows the curved geometry of latent space instead of cutting across it. The other dozen - add, multiply, screen, overlay, random, and friends - are image-blend math applied to the vectors, and they range from "subtle weirdness" to "definitely a mistake," but they're fun to poke at.
Where people get burned
The classic gotcha is in the README's warning about batch_size. The node happily makes you steps conditionings, but if your EmptyLatentImage (or whatever generates the seed latent) has batch size 1, your KSampler will only ever render one frame. Set the latent's batch to steps or you'll stare at a single output wondering what happened.
Second trap: start and end conditioning have to be the same shape. The node asserts this and will raise Conditioning shapes don't match if they differ. In practice that means the two prompts should be a similar length - wildly different token counts produce differently-shaped embeddings, and there's no padding here. Keep both prompts within a few words of each other.
Installing it
It ships in the Latent Walk pack (rnbwdsh/ComfyUI-LatentWalk), a fork of Nicholas McCarthy's TravelSuite. In ComfyUI Manager, search "Latent Walk" and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/rnbwdsh/ComfyUI-LatentWalk
Then restart ComfyUI. The requirements are just torch, numpy, Pillow and scipy - scipy is the only one that isn't guaranteed in a bare ComfyUI environment, and Manager installs the pack's requirements.txt for you. No model files to download. The README's example animations were made with a flux.1-schnell GGUF, so this isn't an SD1.5-only toy; it works fine on modern models.
One note: this is the interpolation node from the pack, not the random one - if you want variations on a single prompt rather than a morph between two, that's the sibling LatentWalkConditionalRandom.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| start | CONDITIONING | — | |
| end | CONDITIONING | — | |
| steps | INT | 93–10000 | — |
| factor | FLOAT | 0.50 | — |
| blend | COMBO | 14 options: add, multiply, divide, subtract, screen, difference, +8 | |
| travel | COMBO | 8 options: linear, circle, quadratic, cubic, quartic, geometric, +2 | |
| reflect | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONINGS | CONDITIONING | — |