Nodes/ComfyUI_HelloMeme/Get Face Landmarks
ComfyUI Node

Get Face Landmarks

Get Face Landmarks — the 222-point detection every HelloMeme graph starts with

By HelloVision·Created 2 years ago·Updated about a year ago· 374
Get Face Landmarks
  • face_toolkits
  • images
  • landmarks

Every HelloMeme workflow has the same opening move: load the face toolkits, then run this node to detect the face and its 222 landmarks. It's not glamorous, but nothing downstream works without it. GetHeadPose needs the landmarks to estimate head rotation and translation, GetExpression needs them to read facial motion - and this node is the thing that tells both of them where the face actually is in the frame.

If you've seen MediaPipe's face landmarking or InsightFace in the LivePortrait world, you know the pattern: locate the face, dump a dense point cloud over it. HelloMeme's version (an internal aligner that ships with the toolkit loader) produces 222 points, and that's enough for the pack to reconstruct pose and expression from.

How it works

It takes the images batch, runs face detection and alignment via the face_aligner bundled in face_toolkits, and returns the landmark set as a FACELANDMARKS222 tensor - one landmark set per input frame, in order. The heavy lifting (and the models) live in the toolkit loader, so this node itself is light; it mostly converts frames, detects, and passes the points through.

A detail worth knowing: it runs on every frame you give it. Feed it the whole driving clip and you get landmarks for the whole clip, which is what the video pipeline wants. Feed it a single reference image and you get a single landmark set for that face.

The inputs and output that matter

  • face_toolkits - from HMFaceToolkitsLoader. Required, always.
  • images - the reference image or driving video as an IMAGE batch.

Output: landmarks (FACELANDMARKS222), which wires straight into GetHeadPose and GetExpression/GetExpression2. That's the whole node - two inputs, one output. It's a utility, and it knows it.

Installing it

Comes with the HelloMeme pack, which installs via ComfyUI Manager (search keyword hellomeme-api) or a manual clone:

cd ComfyUI/custom_nodes
git clone https://github.com/HelloVision/ComfyUI_HelloMeme
# restart ComfyUI

No separate model downloads of its own - the alignment models are part of the toolkit bundle the loader pulls on first run (from HuggingFace by default, ModelScope if you set deployment to modelscope). First run is slower than subsequent ones because of that download.

Common issues

  • "Not all images have face detected!" - this is the one you'll actually hit. The node asserts that every single frame has a detectable face, and aborts if any frame fails. Driving videos where the face slides out of frame, blurs, or turns profile are the usual culprits. Trim the clip or pick a cleaner one; you can't tell it to skip bad frames.
  • Order matters. If you've loaded a workflow and it's complaining, check that GetFaceLandmarks runs on the same images batch that feeds the downstream pose/expression nodes. Cross-wired frames are a classic beginner stumble.
  • Landmark quality is downstream quality. Pose and expression are only as good as the alignment. A small, low-res, or heavily cropped face in the frame degrades everything after it - which is why the pack's README hammers on cropping the reference so the face fills it properly.
Categoryhellomeme

Inputs (2)

NameTypeDefaultDescription
face_toolkitsFACE_TOOLKITS
imagesIMAGE

Outputs (1)

NameTypeDescription
landmarksFACELANDMARKS222