Apply Transported Vector (LRW)
Add the style you just carried
- latent
- vector
- latent
The last node in the style-transfer chain and the one with the least to explain. Apply Transported Vector takes a target latent, takes a vector, and adds them together scaled by a strength you choose. result = latent + strength × vector. That's the whole mechanism, and it's exactly right for its job.
Where it sits
The full pipeline goes: LRW_LatentVectorFromDiff builds a direction from two images, LRW_ParallelTransport carries that direction from the source location to your target location, and this node finally applies it. Without the transport step you could do the same arithmetic with any latent-math node, but the transported vector is the whole point - it's the direction that means the same thing at the destination as it did at the source. This node is just the clean way to land it.
Inputs:
latent- your target latent, e.g. from VAEEncode of the image you want to modify.vector- the transported vector fromLRW_ParallelTransport(a raw diff vector also works, but then you've skipped the geometry part).strength(default 1, range 0–5) - how much of the vector to add. Start at 0.5-ish and work up; the transported vector's scale depends on how you built it, so nobody can give you a universal value. Above 1 you're deliberately overshooting, which is sometimes a useful effect and sometimes mush.
Output is a single latent, ready for KSampler (that's how the pack's style-transfer example wires it).
The honest gotchas
Three things trip people up. First: the vector is a LATENT-typed tensor that isn't a real latent - don't try to VAEDecode it directly, the numbers are full of negative values and it'll just look like noise. Second: shape. latent and vector need matching spatial shapes or you'll get a broadcast error; if you built your vector at a different resolution than your target, VAE-encode at the same resolution or the arithmetic silently does the wrong thing. Third: expectation setting. The author's own framing (from the announcement thread) is that these are soft guides, not magic quality boosters - a transported lighting direction shifts the result subtly, it doesn't relight your image. If you get no visible change, crank strength up, and if you get chaos, crank it down.
Install
Part of comfyui-lrw-nodes by lajjadred, the ComfyUI face of his latent-riemannian-world package. Search the pack in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/lajjadred/comfyui-lrw-nodes
cd comfyui-lrw-nodes
pip install -r requirements.txt
Restart ComfyUI. Real deps: latent-riemannian-world >= 0.3.0, torch >= 2.4, Python 3.12+. Early builds had a registration bug that showed nodes as broken/UNKNOWN until fixed upstream - git pull + full restart clears it, and keep a single copy of the pack in custom_nodes. License is BSL-1.1.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| latent | LATENT | — | |
| vector | LATENT | — | |
| strength | FLOAT | 1.000–5 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |