Lynx InsightFace Crop
Crop the face Lynx needs from your reference
- image
- ip_image
- ref_image
Before Lynx can lock a person's face into a Wan video, it needs a clean crop of that face - and it needs it processed the specific way ByteDance's Lynx expects. That's this node's entire job. You hand it a reference image, it runs InsightFace to find and align the face, and it hands back two things: a tight face crop for the identity path, and a reference image for the detail path. Get this step right and the rest of the Lynx pipeline behaves; get it wrong (blurry, off-angle, or no face found) and identity preservation falls apart no matter how you tune the downstream scales.
It's one of those small preprocessing nodes that quietly decides whether the whole feature works, which is probably why it gets a surprising number of clicks for such a niche node.
How it works
InsightFace detects the face, aligns it, and produces the crop. Lynx's ID-adapter then takes an ArcFace embedding of that crop - a vector encoding facial geometry, not appearance - as its identity signal, while the Ref-adapter uses the reference for finer detail. This node splits its output to feed both paths cleanly, so you don't have to manually crop and align anything. It's the front door of the Lynx identity pipeline.
The inputs and outputs that matter
image(IMAGE) - your reference photo of the person. One good, reasonably front-facing shot is what you want.
Two outputs:
ip_image(IMAGE) - the tight, aligned face crop destined for the identity (ArcFace) path.ref_image(IMAGE) - the reference used for the detail path.
Wire these into the rest of the Lynx chain (the resampler and WanVideoAddLynxEmbeds). There are no strength knobs here - it's a preprocessing node, not a conditioning one.
How to install it
Part of the WanVideoWrapper. ComfyUI Manager: search ComfyUI-WanVideoWrapper, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
pip install -r ComfyUI-WanVideoWrapper/requirements.txt
then restart. The real dependency here is InsightFace, the face-analysis library that sits under basically every identity tool (IP-Adapter FaceID, InstantID, PuLID all lean on the same ArcFace backbone). It has a reputation as one of the worst installs in local generation - though InsightFace 1.0 (May 2026) finally shipped a PyPI wheel that drops the C++ build requirement, so it's much less painful than it used to be. If this node errors on import or "can't find a face," InsightFace is almost always the culprit.
Common issues & troubleshooting
"No face detected." InsightFace couldn't find a usable face. Use a clearer, larger, more front-facing reference. Extreme angles, heavy occlusion, or tiny faces in a wide shot will fail detection.
InsightFace won't install / import errors. The classic. Make sure InsightFace is actually installed in the same Python environment ComfyUI runs in. On the 1.0+ wheel this is a pip install insightface rather than a compile ordeal; on older setups you were fighting a C++ toolchain.
Identity is weak downstream. Often a crop problem, not a scale problem. If ip_scale on the Lynx embeds node isn't biting, look back here - a soft or badly-aligned ip_image gives the ID-adapter a weak signal to work from.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Input images for the model |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| ip_image | IMAGE | — |
| ref_image | IMAGE | — |