Eric Qwen Conditioning Interpolate
Lerp, slerp, and turning two encodings into an infinite range of edits
- cond_A
- cond_B
- conditioning
This is the node that makes the whole conditioning system feel like magic. Eric Qwen Conditioning Interpolate takes two conditionings and slides between them on an alpha dial, so "neutral face" and "full smile" become a continuous spectrum instead of two separate edits. You get an expression slider for a character, a style slider between two looks, and - here's the fun part - the range goes past the ends.
The math is result = cond_A + alpha × (cond_B − cond_A). At alpha 0 you get pure A, at 1 pure B, and the dial runs −5 to +5: 1.5 is "more than the target", −1 is the opposite direction, which is a form of suppression. Qwen2.5-VL's embedding space is smooth enough that extrapolation behaves - that's the documented premise of this whole direction system, and it holds well enough to be genuinely useful for expression and style work.
The inputs that matter
cond_A- baseline (the alpha=0 result),cond_B- target (alpha=1).alpha- the dial. 0–1 between the two, >1 exaggerated, <0 opposite. The tooltip's one-liner is worth remembering: the text prompt dominates coarse intent, alpha shapes the character.method-lerp(default) orslerp. Lerp draws a straight line through embedding space and slightly shrinks magnitude at the midpoint; fine for alpha 0.3–1.2. Slerp travels the surface of the embedding sphere, preserving magnitude, and is the better choice for wide sweeps or big extrapolation (>1.5). For a single expression tweak they're nearly identical.scope- which tokens get interpolated. This is the power control:all_tokens- everything (default, safe when unsure).skip_prefix_N- interpolate text tokens only, keep the image tokens from A. For same-image edits like expression changes, where the image delta is ~zero and all the signal lives in the instruction.keep_prefix_N- interpolate image tokens only, keep text from A. For cross-image edits like style/film transfer, where two different images were encoded and the signal is in what changed visually.last_N_tokens- the docs say not recommended for Qwen; template-end tokens live there, not instructions.
prefix_N- the image/text boundary. Leave 0 and it's auto-read from the Encode metadata (each Encode prints its value to the console).scope_Nis only used bylast_N_tokens, so you can ignore it.
A typical graph
Encode(image, "neutral expression") ─┐
├→ Interpolate(alpha=0.8, scope=skip_prefix_N) → Conditioned Edit
Encode(image, "smile warmly") ───────┘
Installing it
ComfyUI Manager → "Eric Qwen-Edit", or:
cd ComfyUI/custom_nodes
git clone https://github.com/EricRollei/Eric_Qwen_Edit_Experiments.git
Restart. Needs a loaded Qwen-Image-Edit pipeline (use the pack's loader with Qwen/Qwen-Image-Edit-2511, ~54 GB) feeding the Encode nodes upstream.
Troubleshooting
- Interpolating doesn't change anything - alpha at 0 is a pure passthrough of A. Check the dial.
- Expression edit drifts / does nothing - you're probably on
all_tokensinstead ofskip_prefix_N. Same-image edits keep their signal in the text region; interpolating the image tokens just averages two identical images. - Style transfer smears rather than transfers - flip to
keep_prefix_Nso the image-token delta (where the style lives) is what moves, and the text stays anchored. - Ugly midpoint artifacts on a sweep - switch
lerptoslerp; the magnitude preservation gives more uniform perceptual steps.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| cond_A | QWEN_CONDITIONING | Baseline conditioning (alpha=0 result) | |
| cond_B | QWEN_CONDITIONING | Target conditioning (alpha=1 result) | |
| alpha | FLOAT | 1.00-5–5 | 0=cond_A (no change), 1=cond_B (full target), >1=exaggerated, <0=opposite. Text prompt dominates coarse intent; alpha shapes the character. |
| methodopt | COMBO | lerp | lerp: linear interpolation. Fast, good for alpha 0.3-1.2. slerp: spherical interpolation. Preserves embedding magnitude. More uniform perceptual steps. Better for wide alpha sweeps or large extrapolation (>1.5). |
| scopeopt | COMBO | all_tokens | all_tokens: interpolate everything. skip_prefix_N: text tokens only → expression editing. keep_prefix_N: image tokens only → style transfer. last_N_tokens: not recommended for Qwen. |
| prefix_Nopt | INT | 00–512 | 0 = auto from Encode metadata (recommended). |
| scope_Nopt | INT | 71–128 | Only used for last_N_tokens scope. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | QWEN_CONDITIONING | — |