HyperLoRA Uni Generate ID LoRA
Images in, face LoRA out — the one-node pipeline
- hyper_lora
- images
- LORA
This is the node you'll actually live in. Where the "full" pipeline threads three nodes together - detect the face, build the ID condition, generate the LoRA - HyperLoRAUniGenerateIDLoRA does all of it inside a single box. Feed it a batch of reference photos, get a ready-to-use face LORA on the other side. It's the closest thing the pack has to a "make me a face LoRA" button.
What it is
It's literally a macro. The source instantiates the FaceAttr node, the IDCond node, and the GenerateIDLoRA node and calls them in sequence: face detection and landmarks from InsightFace, then face cropping/background removal into an ID_COND, then the resampler + hyper-network that predicts the LoRA weights. Because it bundles the whole chain, it also hardcodes the sane preprocessor defaults - grayscale off, remove_background on.
The inputs that matter
hyper_lora- the bundle fromHyperLoRAUniLoader(or Loader+Config).images- your reference photos. This is where the quality lives: use clear, frontal, well-lit face or head-and-shoulders shots. The README says this trains the face, and the community consensus agrees - garbage in, weak likeness out.grayscale- converts the face to grayscale for the CLIP path. Leave off unless you're deliberately testing style transfer.remove_background- defaulttrue; masks out everything but the face and fills the background gray so the ID signal doesn't leak clothing/scene into the LoRA. Keep it on.
Output: a single LORA wire, feeding HyperLoRAApplyLoRA or HyperLoRASaveLoRA - ideally both, so you can test now and reuse later.
Installing
Same story as the whole pack: ComfyUI Manager → search "ComfyUI-HyperLoRA", or git clone https://github.com/bytedance/ComfyUI-HyperLoRA into custom_nodes, pip install -r requirements.txt (diffusers, insightface, onnxruntime, opencv-python, transformers), restart. Then the model downloads - CLIP processor/ViT under models/hyper_lora/, the HyperLoRA weights from bytedance-research/HyperLoRA under models/hyper_lora/hyper_lora/, and the antelopev2 InsightFace pack under models/insightface/models/. The README's folder tree is exact; get it wrong and the UniLoader dropdowns say "Not found!".
Gotchas and the honest assessment
The single most common failure is "No face detected" - this node throws when InsightFace finds nothing in a photo, or silently skips a bad frame in a batch. If the detection works but the result looks nothing like the person, the input images are the problem, not the node.
Results are genuinely variable. The community consensus after release: it can be "surprisingly good" and it can be far from perfect, and it never got the attention it deserved because it's not plug-and-play across checkpoints. Stick to the tested ones (RealVisXL v4.0 is best; ArienMixXL v4.0 fails), keep the fcsks fxhks fhyks, trigger words at the start of your prompt, set stop_at_clip_layer to -2, and apply the result at weight 0.75–0.85. The README also recommends pairing it with a FaceDetailer pass and, for the strongest likeness, an InstantID ControlNet on top. And since you're saving a real LoRA, it makes a great starting point for a quick ~50-step finetune to close the remaining gap.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| hyper_lora | HYPER_LORA | — | |
| images | IMAGE | — | |
| grayscale | BOOLEAN | false | — |
| remove_background | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LORA | LORA | — |