Nodes/ComfyUI QwenScope/Combine Lenses
ComfyUI Node

Combine Lenses

Combine Lenses — mix 'cinematic' and 'moody' like audio faders

By Nynxz·Created 4 months ago·Updated 4 months ago· 0
Combine Lenses
  • lens_a
  • lens_b
  • lens_c
  • lens_d
  • steer
  • info
weight_a1.00
weight_b1.00
weight_c0.00
weight_d0.00
strength1.00

Combine Lenses is the node that turns individual concept lenses into cocktails. Take up to four steer plans - each one a learned direction for something like "cinematic," "vintage film," "ethereal" - give each a weight, and it sums them into a single steer plan. The canonical recipe is written right in the README: 0.8 × cinematic + 0.5 × moody. Negative weights work too, so − 0.3 × bland is a legitimate move.

It's the difference between hunting for one perfect lens and mixing the ones you have. Individual concept lenses tend to be blunt instruments; the interesting results come from layering two or three at carefully chosen strengths, and this node is where that blending happens.

How it works

Under the hood it's just vector math: each steer plan is fundamentally a direction tensor, and combining is a weighted sum - combined = w_a·dir_a + w_b·dir_b + …. Then it unit-normalizes the result, which is the smart bit: because the sum is renormalized, the strength knob on the output behaves exactly like it does on a single lens. You're not playing whack-a-mole with compounded magnitudes; the blend's intensity is predictable.

There's one hard rule: all four lenses must share the same d_model. A lens trained at 4096-d (Qwen3-8B encoder) and one at 2048-d (1.7B) can't be added, and the node will throw a clear error rather than silently doing garbage math.

The inputs that matter

  • lens_a - required. The anchor lens.
  • lens_b / lens_c / lens_d - optional; leave unconnected and their weights default to zero. So you can start with two and grow to four later.
  • weight_a / weight_b / weight_c / weight_d - each from −8 to +8, step 0.05. Positive pushes toward the concept, negative pushes away. Weights below ~0.05 on a connected lens are effectively ignored.
  • strength - the master volume on the combined result (default 1.0). This is the knob you'll actually reach for while iterating.

Outputs: steer (QSCOPE_STEER) - ready for Steer Conditioning, Steer CLIP, or Generate - and info reporting how many lenses combined and the d_model, with the weighted source breakdown in the string.

Installing it

Part of the same pack, one install: ComfyUI Manager → search "ComfyUI QwenScope", or

cd ComfyUI/custom_nodes
git clone https://github.com/Nynxz/ComfyUI-QwenScope

restart. Dependencies (transformers, huggingface_hub, safetensors, Pillow, numpy) are the pack's usual set; nothing extra downloads just for combining - the heavy lifting happens in whichever nodes produced your lenses.

Common issues

The d_model mismatch is the classic failure - it usually means you blended a lens meant for a different encoder size than the one your image model actually uses. Fix: load/load the lenses from the same base model family. Also note the layer_spec of the output comes from the first lens; if your inputs were meant for different layer specs, the blend applies at lens_a's spec, so keep them consistent for predictable results.

CategoryQwenScope/Lens

Inputs (9)

NameTypeDefaultDescription
lens_aQSCOPE_STEER
weight_aFLOAT1.00-8–8
weight_bFLOAT1.00-8–8
weight_cFLOAT0.00-8–8
weight_dFLOAT0.00-8–8
strengthFLOAT1.00-8–8
lens_boptQSCOPE_STEER
lens_coptQSCOPE_STEER
lens_doptQSCOPE_STEER

Outputs (2)

NameTypeDescription
steerQSCOPE_STEER
infoSTRING