(Download)Load NLF Model
The 3D pose estimator behind Wan Animate
- nlf_model
This node loads NLF - Neural Localizer Fields, a 3D human pose and body-mesh model by István Sárándi - and it's a preprocessing dependency for the Wan Animate pipeline. It exists so that when you feed Animate a driving video, something can extract a proper 3D read of the person's body: joints, orientation, depth. That 3D signal is what makes character motion transfer look like a real body moving rather than a flat pose overlay.
It's a "download and load" node, which is the convenient kind - point it at the release URL and it fetches the weights the first time, then loads them on subsequent runs. No manual model hunting.
How it works
Traditional pose control for video uses 2D skeletons (DWPose/OpenPose), which throw away depth and contact information before the model ever sees it. NLF estimates a richer 3D localization of the body instead. In an Animate workflow, you run the driving footage through NLF to produce the body-motion signal that ultimately feeds WanVideoAnimateEmbeds. The node handles fetching the TorchScript model and preparing it for inference.
The inputs and outputs that matter
url- the NLF release to download, picked from a short list (the node defaults to thenlf_l_multi_0.3.2TorchScript build from the model's GitHub releases, with an older 0.2.2 as the alternative). The default is the one to use unless you're matching an older workflow.warmup(optional, default true) - runs a warm-up pass so the first real inference isn't paying the JIT/initialization cost. Leave it on; it just makes the first frame quicker.
Output is a single NLFMODEL, which you route into the pose-preprocessing part of your Animate graph.
How to install it
Comes with the pack. Via ComfyUI Manager: search WanVideo Wrapper, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
pip install -r ComfyUI-WanVideoWrapper/requirements.txt
then restart. The NLF weights themselves are auto-downloaded on first use from the isarandi/nlf GitHub releases, so the first run will pause to fetch them - that's normal.
Common issues & troubleshooting
First run hangs or "does nothing." It's downloading the model. The weights come from a GitHub release the first time you run the node; give it a minute and watch the console. If it fails, it's usually a network/proxy issue reaching GitHub, not the node.
You don't know why you'd need this. You need it if you're building a Wan Animate workflow that drives motion from a video - NLF is the 3D-pose front end. If you're not doing Animate/motion-transfer, this node isn't part of your graph.
Version mismatch with an existing workflow. If you loaded a shared Animate workflow that expects the older 0.2.2 build, select that URL rather than the 0.3.2 default, or you may see incompatibilities in what the downstream nodes expect.
Pose read looks wrong on unusual footage. 3D body estimation struggles with heavy occlusion, extreme crops, or multiple overlapping people. Cleaner, well-framed driving footage produces a cleaner pose signal - garbage in, garbage out applies to the driver just as much as to the reference.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| url | COMBO | https://github.com/isarandi/nlf/releases/download/v0.3.2/nlf_l_multi_0.3.2.torchscript | 2 options: https://github.com/isarandi/nlf/releases/download/v0.3.2/nlf_l_multi_0.3.2.torchscript, https://github.com/isarandi/nlf/releases/download/v0.2.2/nlf_l_multi_0.2.2.torchscript |
| warmupopt | BOOLEAN | true | Whether to warmup the model after loading |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| nlf_model | NLFMODEL | — |