Nodes/Gimbal-ComfyUI/🧭 Gimbal Compass Pro
ComfyUI Node

🧭 Gimbal Compass Pro

How Gimbal Compass Pro actually moves your image

By FormAndNoiseΒ·Created about a month agoΒ·Updated 19 days agoΒ· 0
🧭 Gimbal Compass Pro
  • base_latent
  • target_latent
  • origin_latent
  • mask
  • mu_centroid
  • latent_out
  • gimbal_meta
β—„strength1.00β–Ί
β—„modeStandardβ–Ί
β—„clamp_outputfalseβ–Ί
β—„clamp_min-10.0β–Ί
β—„clamp_max10.0β–Ί
β—„allow_batch_expandfalseβ–Ί
β—„ortho_per_channelfalseβ–Ί
β—„clamp_mask_inputfalseβ–Ί
β—„enable_perf_loggingfalseβ–Ί
β—„seed0β–Ί

Gimbal Compass Pro is the flagship of the Form & Noise "Gimbal" suite, and it's the node the whole pack is built around. If you've ever wished you could nudge a render "a bit warmer but keep the exact same car" instead of re-rolling the seed and hoping, this is the tool. It treats a latent as a point in a 65,536-dimensional space and steers you from one point toward another along a controlled path - the same idea behind SLERP-blending and StyleGAN-style steering, packaged as one node with eight different steering modes.

How it works

Give it three latents: base_latent (your starting canvas), target_latent (the destination concept), and origin_latent (the anchor that defines what "zero delta" means). The node computes target βˆ’ origin, then applies that delta to the base latent at a strength you set. Set origin_latent to an empty latent and the delta collapses to target itself, which makes strength behave like a pure blend weight.

The two modes you'll actually use:

  • Slerp - interpolates along the geodesic arc between base and target instead of the straight chord. That's not math snobbery: naively lerping two high-dimensional latents shoves the midpoint toward the origin where the density collapses and you get muddy, washed-out blends. The ΞΌ-centered version here anchors the arc at a population centroid so the 50/50 point stays on the manifold where real images live.
  • Orthogonal_Projection - projects the steering delta perpendicular to your base before adding it. This is the "change the mood, not the geometry" trick. Steering "cyberpunk neon" onto a studio car render with this mode repaints lighting and atmosphere while the body panels hold their shape, because the component of the delta that would push your subject's structure is thrown away. There's an ortho_per_channel toggle if you want that projection done per latent channel rather than across the whole tensor.

Standard and Normalized are plain add-delta (with or without rescaling the delta to unit norm), Blend_Overlay/Blend_Multiply mix the images, and Stochastic_Sample uses the seed input for random re-sampling. clamp_output/clamp_min/clamp_max give you a safety clamp so a strength of 9 doesn't hand the VAE garbage - genuinely worth leaving on while you find your range.

The wiring that matters

The canonical recipe from the README: generate concept A and concept B at full denoise (two KSamplers), wire A into base_latent and origin_latent, B into target_latent, set Slerp at strength = 0.5, then send latent_out into a refinement KSampler at denoise 0.45–0.60 with CFG around 3.5–4.5. Blend at step 0 (raw Gaussian noise), not after eight steps of denoising - catching it late forces the model to re-skin already-formed structure and you get tree trunks morphing into rock spires. The mask input (optional) spatially limits steering, and mu_centroid lets you supply your own anchor batch for the Slerp.

Installing

ComfyUI Manager β†’ search "Gimbal-comfy" β†’ install β†’ restart, or clone manually:

cd ComfyUI/custom_nodes
git clone https://github.com/FormAndNoise/Gimbal-comfy

Requirements are just torch/numpy/pillow, which ComfyUI already ships - no model downloads, no API keys. One heads-up: the README's own clone URL (form-and-noise/ComfyUI-Gimbal) is stale; the real repo is FormAndNoise/Gimbal-comfy.

Where people get burned

The number-one mistake is steering too late in the denoise schedule and then over-refining - keep refinement denoise below 0.60 or your carefully plotted course gets overwritten. Second is cranked CFG on the refinement pass; this pack injects clear direction into the latent, so high guidance deep-fries it into crispy black outlines. And a word on the pack's reputation: Gimbal is polished but near-invisible in the community - it's an ambitious, heavily AI-assisted project with thick marketing and thin street cred, so treat its results as starting points and validate with your own eyes. The math is standard, the results are real, but nobody's chasing you into the comments.

CategoryGimbal/Flight Instruments

Inputs (15)

NameTypeDefaultDescription
base_latentLATENTβ€”
target_latentLATENTβ€”
origin_latentLATENTβ€”
strengthFLOAT1.00-10–10β€”
modeCOMBOStandard8 options: Standard, Normalized, Orthogonal_Projection, Slerp, Slerp_Origin, Blend_Overlay, +2
clamp_outputBOOLEANfalseβ€”
clamp_minFLOAT-10.0-100–0β€”
clamp_maxFLOAT10.00–100β€”
allow_batch_expandBOOLEANfalseβ€”
ortho_per_channelBOOLEANfalseβ€”
clamp_mask_inputBOOLEANfalseβ€”
enable_perf_loggingBOOLEANfalseβ€”
maskoptMASKβ€”
seedoptINT00–18446744073709550000β€”
mu_centroidoptLATENTOptional population centroid for ΞΌ-centered Slerp. If absent, origin_latent is used as the anchor.

Outputs (2)

NameTypeDescription
latent_outLATENTβ€”
gimbal_metaDICTβ€”