𧬠Gimbal Likeness Isolator
Split a character LoRA's identity from its style
- model
- clip
- MODEL
- CLIP
Character LoRAs are never just the character. Train one on a person or character and you also get their lighting, wardrobe, background and brushwork baked in - which is exactly what you don't want when you're trying to put that character in a completely different scene. GimbalLikenessIsolator is the pack's answer: a LoRA loader with an extra dial that tries to separate the identity tokens from the style tokens in the text encoder, so you can keep the face and drop the baggage.
How it works
It's a model-patching node: model and clip go in, a LoRA name comes from the lora_name dropdown (it reads your LoRA folder at runtime), and patched MODEL/CLIP come out - wire those straight into your sampler. Three controls set how the patch behaves:
strength(β10 to 10, default 1) - the overall model patch strength. Same meaning as a normal LoRA strength.alpha(β10 to 10, default 1) - mapped to CLIP strength or individual alpha isolation when supported; in practice your second lever for how hard the LoRA's representation lands.likeness_mask(0 to 3, default 1) - the headline feature. It weights the identity tokens in the CLIP text-encoder. At 1.0 you get full identity plus training style; around 0.8 is "pure character identity that transfers cleanly to new environments"; down at 0.0 you get style-only - the lighting and brushwork, with zero character resemblance.
The mechanism is a differential LoRA probe: it reads the LoRA's contribution to the CLIP text encoder and lets you weight the identity-ish tokens separately from the style-ish ones, then patches the model accordingly. In practice "identity tokens vs style tokens" is a learned guess, not a hard split - expect it to be useful but not surgical.
When you'd reach for it
The README pairs it with Compass Pro for "Likeness Isolator" workflows: load a character LoRA at a low likeness_mask, keep the identity, then steer the new scene's lighting with a Cross-Modal Bridge + Compass in Orthogonal mode. It's the character-consistency workflow in one node - the kind of thing that otherwise means juggling two LoRAs or masking in post. See the KB's character-consistency material for why identity/style separation is the recurring headache this targets.
Installing
Standard pack install: ComfyUI Manager β search "Gimbal-comfy" β install β restart, or git clone https://github.com/FormAndNoise/Gimbal-comfy into ComfyUI/custom_nodes. Dependencies are torch/numpy/pillow, already bundled; nothing to download. (The README's clone URL is stale - FormAndNoise/Gimbal-comfy is live.)
Where people get burned
The likeness_mask dial is a blunt instrument, not a switch. There's no "correct" value - 0.8 isn't guaranteed to cleanly separate identity from environment, because LoRA weights don't actually sort themselves into neat "identity" and "style" piles. Test across the range on your specific LoRA before trusting one setting. Also remember the inputs: it needs both model and clip, so if you're on a pipeline that feeds an already-patched model in, you can double-patch. And set expectations: this is one of the more ambitious nodes in a pack that's barely discussed in the community, so the identity/style separation is "usually helps," not "always works." It's a genuinely interesting idea that lands somewhere between a gimmick and a workflow-saver depending on the LoRA.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | β | |
| clip | CLIP | β | |
| lora_name | COMBO | 0 options: | |
| strength | FLOAT | 1.00-10β10 | Overall model patch strength. |
| alpha | FLOAT | 1.00-10β10 | Mapped to CLIP strength or individual alpha isolation if supported. |
| likeness_mask | FLOAT | 1.000β3 | Weights the identity tokens in CLIP text-encoder. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | β |
| CLIP | CLIP | β |