Nodes/Gimbal-ComfyUI/πŸ” Gimbal Channel Merge
ComfyUI Node

πŸ” Gimbal Channel Merge

Put a split latent back together (and only that)

By FormAndNoiseΒ·Created about a month agoΒ·Updated 19 days agoΒ· 0
πŸ” Gimbal Channel Merge
  • latent_band_A
  • latent_band_B
  • merged_latent
  • telemetry

This is the shortest job in the Gimbal suite: GimbalChannelMerge takes two latent bands and concatenates them back together along the channel dimension. That's the whole thing. If you've ever run a GimbalChannelSplit and edited one band, this is the node that turns your two edited halves back into a single latent you can actually sample.

How it works

Inputs are latent_band_A and latent_band_B (the exact outputs of GimbalChannelSplit, which are latent_band_A and latent_band_B - they're named to wire up 1:1). The merge is torch.cat([A, B], dim=1), so the band order is preserved and the result has the original channel count. If you only touched band B and left band A alone, band A comes back bit-for-bit identical - that's the entire point of the split/merge architecture, and it's how you guarantee zero silhouette change while editing texture.

You get a merged_latent out plus a telemetry dict describing the recomposition, which is mainly useful if you're scripting.

When you'd reach for it

Almost never on its own - it's the closing half of the subspace loop: Split β†’ edit/scale one band β†’ Merge β†’ KSampler. The one decision you make is which band you edit before merging it back. On SDXL (split at 2), editing the high band before merge is "new material, same shape"; on FLUX (split at 8), the same move touches the surface/texture channels while composition channels ride through untouched.

Installing

Standard pack install: ComfyUI Manager β†’ search "Gimbal-comfy" β†’ install β†’ restart, or clone https://github.com/FormAndNoise/Gimbal-comfy into ComfyUI/custom_nodes. Dependencies are torch/numpy/pillow, already bundled with ComfyUI. Nothing else downloads. The README's own URL is stale - FormAndNoise/Gimbal-comfy is the real repo.

Where people get burned

The mistakes are all pairing mistakes. Merging bands from different split indices (e.g. a band split at 2 with a band split at 8) produces a latent whose channel count doesn't match what your model expects - the sampler will throw a shape error, and no amount of restarting fixes that. Also, don't skip GimbalChannelMerge thinking you can sample a band directly; ComfyUI needs the full channel count. And keep the two bands matched by device/dtype - a float16 band A with a float32 band B can misbehave in the concat. In practice this node is so simple it rarely breaks; when your split-edit-merge pipeline fails, the culprit is almost always upstream in the split or the edit, not here. One honest caveat: the pack itself is young with almost no community discussion, and the channel "frequency map" in its docs is an approximation, not a guarantee - your model's channel semantics may not line up with the doc's neat table.

CategoryGimbal/Subspace

Inputs (2)

NameTypeDefaultDescription
latent_band_ALATENTβ€”
latent_band_BLATENTβ€”

Outputs (2)

NameTypeDescription
merged_latentLATENTβ€”
telemetryDICTβ€”