Nodes/Advanced Latent Control/Combine transforms
ComfyUI Node

Combine transforms

Stack two latent edits into one instruction

By kuschanow·Created 2 years ago·Updated 14 days ago· 23
Combine transforms
  • transform1
  • transform2
  • TRANSFORM

Combine transforms is the pack's glue node: it takes two TRANSFORM objects and merges them into one. You feed it the outputs of two transform nodes and get back a single TRANSFORM you can drop into one transform_optional socket. No settings, no parameters - just transform1, transform2, and a combined TRANSFORM out.

What it actually does

The transforms are stored as a list of operations, and combining is just concatenating those lists. The important detail: they're applied in sequence on the same step - both transforms run on the denoised prediction at every active step, first one then the other. So if you combine a mirror transform and a multiply transform, the mirror flips the latent and then the multiply scales the flipped result. Order matters, even though the node doesn't make that obvious.

Why it exists

Because transform_optional takes exactly one TRANSFORM, and a single TSampler only has one of those sockets. Without this node, running two transforms at once means two samplers in sequence, which doubles the sampling time and makes the transforms' step windows independent of each other. Combine transforms lets you stack a mirror and a shift and a multiply in one pass, sharing one step timeline. That's the entire appeal: multiple edits, one sampler, one run.

It also plays well with the timing system. Want the mirror on every 4th step and a multiply on the others? Build both with their own start_at/stop_at windows or offsets, combine them, and each fires when its own window allows - the combined list evaluates per step, and transforms that aren't inside their window simply pass through.

When you'll actually use it

The realistic setup is two or three transforms working together - mirror for symmetry plus multiply for punch is the classic combo, or shift plus interpolate to slide toward a reference latent while keeping composition. Start there. Combining four or five transforms into one mega-instruction is possible, but debugging which one is doing what gets miserable fast; the only output is the combined effect, so isolate a single transform first if a result looks wrong.

Install

Same repo as everything else in this pack:

cd ComfyUI/custom_nodes
git clone https://github.com/RomanKuschanow/ComfyUI-Advanced-Latent-Control

Restart after cloning, or grab "Advanced Latent Control" through ComfyUI Manager. No models, no extra dependencies.

The honest caveat

This node does not merge behavior - it merges instructions. Each transform still carries its own window, mode, and offset, and each still evaluates its own conditions per step. Combine is not "AND these together", it's "run both, each when its own clock says so." That's a feature, but it means a combined transform can be genuinely confusing to reason about. If you can't predict what a single transform does, don't combine it with a second one yet. And as always in this pack, remember that a transform with start_at: 0, stop_at: 0 never fires - a combined transform full of those is a combined no-op.

Categorysampling/transforms

Inputs (2)

NameTypeDefaultDescription
transform1TRANSFORM
transform2TRANSFORM

Outputs (1)

NameTypeDescription
TRANSFORMTRANSFORM