Nodes/MTB Nodes/Interpolate Condition (mtb)
ComfyUI Node Runs on cloud

Interpolate Condition (mtb)

Blend between two conditionings in ComfyUI

By melMass·Created 3 years ago·Updated about a month ago· 721
Interpolate Condition (mtb)
    • CONDITIONING
    blend0.00

    Prompt A says "a cat." Prompt B says "a tiger." What sits halfway between them? Interpolate Condition (mtb) answers that literally - it crossfades between conditionings, so you can dial a blend and get a result that's part one prompt, part the other.

    This is different from just concatenating two prompts. Combining prompts adds both concepts at full strength; interpolating mixes them, weighting one against the other with a single slider. That opens up a couple of genuinely fun uses. The obvious one is morphing: sweep the blend from 0 to 1 across a batch and you get a smooth transition - cat → half-cat-half-tiger → tiger - which is the backbone of a lot of "prompt travel" animation. The subtler one is taste: sometimes 70% of concept A with a hint of B lands a look that neither prompt nails on its own.

    It's in the conditioning section of MTB Nodes (comfy_mtb) by melMass.

    How it works

    Conditioning in ComfyUI is the encoded tensor a text encoder produces from your prompt - it's what actually steers the sampler. This node takes conditionings and does a weighted interpolation between them in that latent conditioning space, controlled by blend. At blend 0 you get one side, at 1 the other, and values in between are a true mix rather than a hard cut. Because it's interpolating the encoded tensors, the transition is smoother and more coherent than swapping prompts outright.

    The inputs and outputs that matter

    The one control you set is:

    • blend (default 0, range 0 to 1) - the crossfade position. 0 favors one conditioning, 1 the other, 0.5 is an even mix. This is the knob you animate if you want a morph: sweep it across a batch of runs.

    You feed the node the conditionings you want to blend (from your CLIP Text Encode nodes), and it returns a single CONDITIONING output that you wire into your KSampler's positive (or negative) input like any other conditioning. From the sampler's point of view it's just conditioning - nothing downstream needs to know it was interpolated.

    How to install it

    ComfyUI Manager: search MTB Nodes, install, restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/melMass/comfy_mtb
    

    then restart. Pure Python, no models or extra dependencies - it operates on conditioning tensors you already have.

    Common issues & troubleshooting

    The blend doesn't look like a clean 50/50. Conditioning space isn't perceptually linear - 0.5 doesn't guarantee a result that looks exactly halfway to your eye. Treat blend as a dial to explore, not a percentage promise; the sweet spot for a given pair of prompts is usually found by eye.

    Morphs jump instead of glide. For a smooth transition you need enough steps between 0 and 1 - a handful of blend values will stair-step. Generate more intermediate frames (smaller blend increments) and keep the seed fixed so only the conditioning changes between frames.

    Blending wildly different prompts looks muddy. Interpolating "a cat" and "a spaceship" doesn't produce a sensible in-between the way "cat" and "tiger" does, because there's no coherent midpoint concept. Related prompts interpolate cleanly; unrelated ones tend to smear. Keep the two ends in the same neighborhood for the nicest results.

    Categorymtb/conditioning

    Inputs (1)

    NameTypeDefaultDescription
    blendFLOAT0.000–1

    Outputs (1)

    NameTypeDescription
    CONDITIONINGCONDITIONING