SpectreFaceReconLoader
Loading SPECTRE
- SPECTRE_MODEL
The MotionDiff pack mostly cares about bodies, but one corner of it cares about faces. SpectreFaceReconLoader loads SPECTRE, a facial-reconstruction model that recovers 3D face shape and expression from video frames - the face counterpart to how HMR2.0 recovers whole bodies. It's a one-shot setup node: you flip a switch, it downloads a checkpoint, and it hands you a SPECTRE_MODEL that SpectreImg2SMPL uses to turn faces into 3D meshes.
Why would you reach for it? If your project is about driving expression or head motion - a character whose face you want to reconstruct from footage, or an animated head you want to re-render - body-only SMPL won't cut it. SPECTRE handles the face, and its outputs flow into the same multi-subject render and export nodes as the body path.
How it works
Loading SPECTRE actually loads two things into one SPECTRE_MODEL: a face tracker (used for detection and landmark alignment) and the SPECTRE network itself. The model weights come as a spectre_model.tar downloaded from the pack's GitHub releases - automatic on first use. There's just one real choice: fp16 (off by default). Flip it on if VRAM is tight; face reconstruction is a small enough model that most people leave it off.
The input that matters
fp16- half-precision inference. Default off; enable on low-VRAM setups.
Output: SPECTRE_MODEL, wired into SpectreImg2SMPL.
Installation
Part of Fannovel16/ComfyUI-MotionDiff. Install the pack via ComfyUI Manager (search "ComfyUI MotionDiff") or clone into ComfyUI/custom_nodes and install requirements, then restart. The pack is a heavyweight install overall (smplx, pyrender, trimesh, timm...), and SPECTRE adds its own handful - einsum-heavy torch code, skimage for the face cropping, einops. The checkpoint auto-downloads on first load.
Gotchas
The first-load download is the main surprise - the spectre_model.tar comes down from GitHub releases automatically, and the model build takes a moment, so don't treat a long first queue run as a hang.
One conceptual gotcha: SPECTRE is a face model (it's built on FLAME, not full SMPL bodies). The downstream "SMPL" naming in SpectreImg2SMPL makes it look like you'll get bodies, but you'll get face meshes. That's by design - use the body path (Humans4DLoader + Human4D_Img2SMPL) when you need whole people, and this path when you need heads. Also note the loader's output only connects to the Spectre image node; it won't plug into the body estimation nodes.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| fp16 | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SPECTRE_MODEL | SPECTRE_MODEL | — |