Nodes/ComfyUI-HyperLoRA/HyperLoRA Base Cond
ComfyUI Node

HyperLoRA Base Cond

An image with the face blurred out

By bytedance·Created about a year ago·Updated about a year ago· 498
HyperLoRA Base Cond
  • hyper_lora
  • images
  • face_attr
  • BASE_COND
  • IMAGE
croptrue
crop_scale_LRTB1,1,1,1
safe_croptrue

Here's the design decision that makes HyperLoRA interesting: it doesn't put everything in one LoRA. The paper explicitly splits the work into a Hyper ID-LoRA for the face and a Hyper Base-LoRA for everything else - background, clothing, scene. This node is the base half's preprocessing. It takes your reference images, blurs the face out, and produces the BASE_COND that a separate hyper-network branch turns into the base LoRA weights. The logic is simple and worth understanding: if you want a LoRA that captures "this room, this outfit" without also capturing "this face," you have to remove the face from what the model sees.

What it does

Given the FACE_ATTR landmarks it does two things in sequence:

  1. Face removal - it crops the face region, applies a heavy Gaussian blur (radius ~45), and pastes the blur back over the face in the original image. The identity is destroyed; the scene survives.
  2. Optional crop - crop (default on) trims the image around the face bounding box so the base condition is composed around the subject. crop_scale_LRTB is a left,right,top,bottom multiplier string (default 1,1,1,1), and safe_crop (default on) clamps the crop to the image edges instead of erroring on out-of-bounds coordinates.

Outputs: the BASE_COND (feeds HyperLoRAGenerateBaseLoRA) and a preview IMAGE so you can confirm the face actually got blurred out and the scene survived.

When you actually need it

Honest answer: not very often, for the released v1 models. The README notes the v1 weights were distilled so the 0.25× base LoRA is already folded into the ID LoRA - that's the "further reduced the model size and GPU memory usage" line. The base-LoRA machinery only activates when your config has has_base_lora true, which requires a model that ships a base_resampler.safetensors. If you're on the stock sdxl_hyper_id_lora_v1_fidelity or _edit weights, this node is optional - the default config leaves the base branch off, and the UniLoader hardcodes it off too.

You'd reach for it if you ever run a variant or a custom HyperLoRA that ships the base resampler, or if you want to experiment with splitting identity and scene yourself. The paired image rule from the README applies to any conditioning you build here: for a Concept Slider or scene LoRA, change only the attribute you care about, and keep ID and pose fixed.

Installing

Identical to the rest of the pack: ComfyUI Manager → "ComfyUI-HyperLoRA", or git clone https://github.com/bytedance/ComfyUI-HyperLoRA into custom_nodes, pip install -r requirements.txt, restart. It uses the CLIP processor/model under models/hyper_lora/ and the InsightFace detector (via FaceAttr) under models/insightface/models/; the README's folder tree is the source of truth for both.

Gotchas

Same "No face detected!" failure mode as its sibling nodes - the blur step needs landmarks, so it can't work without a face. And the crop_scale_LRTB string trips people up: it's four comma-separated floats in left, right, top, bottom order, not width/height. If you nudge it, safe_crop being on is what keeps a bad value from throwing - leave it on.

CategoryHyperLoRA

Inputs (6)

NameTypeDefaultDescription
hyper_loraHYPER_LORA
imagesIMAGE
face_attrFACE_ATTR
cropBOOLEANtrue
crop_scale_LRTBSTRING1,1,1,1
safe_cropBOOLEANtrue

Outputs (2)

NameTypeDescription
BASE_CONDBASE_COND
IMAGEIMAGE