PuLID — Face Preview
The face preview node
- face_analysis
- image
- IMAGE
Most of the "PuLID isn't working" posts start with the same silent failure: the Apply node can't find a face in your reference photo, quietly skips the patch, and you get a normal generation with zero identity. PuLID - Face Preview (PuLIDFacePreview) exists to make that visible. Give it the same image and the same face_analysis you feed Apply PuLID, and it draws a green box around every face it detects, labels each one Face 0, Face 1…, and prints the detection confidence.
It's a debugging node, not a secret enhancement - but it earns its place because PuLID's behavior is index-driven and opaque until you look.
What it shows you
Two inputs, both from your existing graph: face_analysis (from Load InsightFace (PuLID)) and image (your reference photo). One optional toggle, show_confidence, default on, which adds each face's det_score to the label - InsightFace's own confidence in that detection, a decent tell for whether the face is clear enough to embed well.
The output is the annotated image. When nothing is detected it doesn't throw - it overlays "No faces detected" in red and returns that, which is exactly the information you need. It's an output node, so it works standalone at the end of a branch, no sampler required.
Why the index matters
Here's the part that actually saves you. The Apply node ranks detected faces by bounding-box area, biggest first, and face_index (0–9) picks which one gets used. So "Face 1" in this preview corresponds exactly to face_index = 1 in Apply PuLID. In a photo with a crowd, or a big face in the background, you can see instantly which face PuLID is grabbing - and which index to set to grab the right one. No preview, and you're guessing.
It's also your first stop when likeness is weak: if the box is hugging a tiny corner face or a profile instead of the clean frontal one you meant, you've found the problem before you ever touch strength.
Install
It ships in the iFayens/ComfyUI-PuLID-Flux2 pack, so install once and you get all five nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/iFayens/ComfyUI-PuLID-Flux2.git
cd ComfyUI-PuLID-Flux2
pip install insightface onnxruntime-gpu open-clip-torch safetensors ml_dtypes==0.3.2
Or ComfyUI Manager → "ComfyUI-PuLID-Flux2". The one dependency this node cares about that the others don't is opencv-python (it draws the boxes and labels) - if you see an import error at load, that's the missing piece. And like the rest of the pack, it needs the antelopev2 files in ComfyUI/models/insightface/models/antelopev2/ before InsightFace will detect anything at all.
Honest scope: on a single clean face photo you'll rarely need this - Apply will grab face 0 and be right. It's the multi-face and poor-lighting cases where this node turns 20 minutes of head-scratching into a 20-second look at a screenshot.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| face_analysis | INSIGHTFACE | — | |
| image | IMAGE | — | |
| show_confidenceopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |