Nodes/Gimbal-ComfyUI/πŸ—ΊοΈ Gimbal Manifold Explorer
ComfyUI Node

πŸ—ΊοΈ Gimbal Manifold Explorer

A 2D map of every variation of your idea, in one render

By FormAndNoiseΒ·Created about a month agoΒ·Updated 19 days agoΒ· 0
πŸ—ΊοΈ Gimbal Manifold Explorer
  • center_latent
  • x_vector
  • y_vector
  • mu_override
  • latent_batch
  • grid_meta
  • grid_report
β—„grid_size_x3β–Ί
β—„grid_size_y3β–Ί
β—„x_strength1.00β–Ί
β—„y_strength1.00β–Ί
β—„interpolation_modeLinearβ–Ί
β—„normalize_vectorstrueβ–Ί
β—„clamp_outputfalseβ–Ί
β—„clamp_min-10.0β–Ί
β—„clamp_max10.0β–Ί
β—„enable_perf_loggingfalseβ–Ί

Instead of generating nine images with nine random seeds and hoping the dice scatter somewhere useful, Gimbal Manifold Explorer generates nine arranged images: a 2D grid that spans two independent directions through latent space at once. One axis might be "warm earthy β†’ cool obsidian," the other "close β†’ distant," and the node hands you every combination as a single batch. You get a map of your idea's neighborhood instead of a grab bag.

It's the survey instrument of the Gimbal-comfy suite by Form & Noise, and the workflow pattern is the pack's signature: let the Cross-Modal Bridge produce the two axis vectors from text, hand them here as x_vector and y_vector, and read the whole terrain off one output.

How it works

You give it a center_latent (your starting point), an x_vector and y_vector (the two directions to explore), and grid dimensions. The node builds offsets across each axis - grid_size_x positions from one side of the x-vector to the other - and for every (x, y) cell it displaces the center latent by x_strength Γ— offset along x and y_strength Γ— offset along y. The interpolation_mode picks whether that displacement is a plain Linear nudge or a Slerp walk along the geodesic arc (Slerp_Origin for the simpler anchor). normalize_vectors (on by default) keeps the axis vectors unit-length so strengths behave consistently, and the clamp toggles keep wild outputs from flying out of range.

The result comes out as latent_batch - a single LATENT whose batch dimension is grid_size_x Γ— grid_size_y, ready for one KSampler pass. You also get grid_meta (a DICT) and grid_report (a STRING describing the layout), and the optional mu_override lets you supply a custom centroid anchor for ΞΌ-centered Slerp instead of defaulting to the center latent.

The inputs that matter

  • grid_size_x / grid_size_y - 1 to 16 each. Keep them small at first; 3Γ—3 is the tutorial default and a fine place to start.
  • x_strength / y_strength - how far each axis reaches. βˆ’10 to 10, and negative strengths explore the opposite direction, which is genuinely useful for "warm β†’ cool" sliders.
  • interpolation_mode - start with Linear; reach for Slerp when midpoints look washed out.

Then decode the batch through a KSampler β†’ VAEDecode β†’ Gimbal Grid Stitch to see the whole map as one contact sheet.

Common issues

Mind VRAM: a 16Γ—16 grid is 256 latents through the sampler at once - that's a lot even on a big card, so chunk your grid or refine at lower resolution. And the pack's golden rules still apply: keep the refinement pass at denoise ~0.5 with modest CFG, or the sampler overwrites the carefully plotted grid.

Install

# ComfyUI Manager β†’ search "Gimbal"
# or:
cd ComfyUI/custom_nodes
git clone https://github.com/FormAndNoise/Gimbal-comfy
pip install -r Gimbal-comfy/requirements.txt

Restart ComfyUI; it's under Add Node β†’ Gimbal/Flight Instruments. Dependencies are just torch, numpy, pillow.

CategoryGimbal/Flight Instruments

Inputs (14)

NameTypeDefaultDescription
center_latentLATENTβ€”
x_vectorLATENTβ€”
y_vectorLATENTβ€”
grid_size_xINT31–16β€”
grid_size_yINT31–16β€”
x_strengthFLOAT1.00-10–10β€”
y_strengthFLOAT1.00-10–10β€”
interpolation_modeCOMBOLinear3 options: Linear, Slerp, Slerp_Origin
normalize_vectorsBOOLEANtrueβ€”
clamp_outputBOOLEANfalseβ€”
clamp_minFLOAT-10.0-100–0β€”
clamp_maxFLOAT10.00–100β€”
enable_perf_loggingBOOLEANfalseβ€”
mu_overrideoptLATENTPopulation centroid for ΞΌ-centered Slerp. If absent, center_latent is used as the anchor.

Outputs (3)

NameTypeDescription
latent_batchLATENTβ€”
grid_metaDICTβ€”
grid_reportSTRINGβ€”