ComfyUI Node Runs on cloud

NLF Predict

3D human pose from video, for pose-driven Wan control

By kijai·Created about a year ago·Updated 2 months ago· 6,650
NLF Predict
  • model
  • images
  • pose_results
  • bboxes
per_batch-1

This is a pose estimator. Point it at a batch of images (or the frames of a video) and it works out the human pose in each one - where the body is, how it's positioned in 3D. NLF stands for Neural Localizer Fields, a pose-estimation method, and this node runs it and hands back both the pose data and bounding boxes for the people it found.

Why would a Wan user care? Because motion-transfer and character-animation workflows need to read the pose out of a driving video before they can drive a generation with it. NLFPredict is the "read the motion" stage that sits in front of the "apply the motion" nodes.

How it works - and why it's not just DWPose

The community default for pose in Wan land has long been DWPose/OpenPose: detect a 2D stick figure per frame, feed that as control. The KB flags the known weakness of that approach - turning motion into a 2D skeleton throws away depth and contact information, exactly the stuff that decides whether a character actually occupies the space the motion implies. NLF estimates pose in a richer, 3D-aware way. So it's in the wrapper as a better front-end for pose-driven work where that lost depth matters.

Mechanically: you load an NLF model, pass your frames in, and it returns per-frame pose_results plus bboxes. Those results are the raw material the pose-embed nodes downstream consume.

The inputs and outputs that matter

  • model (NLFMODEL) - the NLF weights, loaded by a separate loader node. Required.
  • images (IMAGE) - the frames to analyze. This is your driving video as a batch.
  • per_batch (default -1) - how many frames to process at once. -1 means "all of them in one go," which is fastest but heaviest on VRAM. If a long clip OOMs during pose detection, set this to a positive number (say 16 or 32) to process in chunks and cap peak memory.

Outputs:

  • pose_results (NLFPRED) - the pose data, into the pose-driven control nodes.
  • bboxes (BBOX) - per-person bounding boxes, handy for cropping or for masking a specific subject.

How to install it

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. You'll need the NLF model weights downloaded into your ComfyUI models folder so the loader can find them. Pose estimation runs on the GPU, so it competes for VRAM with whatever else is loaded - factor that in on smaller cards.

Common issues & troubleshooting

OOM on a long clip. Pose detection over hundreds of frames at once is the cause. Set per_batch to a modest positive value so it processes in windows instead of loading the whole batch. -1 is convenient but greedy.

No pose / empty results. NLF is a human pose estimator. If the subject is heavily occluded, tiny in frame, or non-human, it may find nothing - check bboxes to see whether it even detected a person. Non-human subjects want a different control path (skeleton-free motion transfer like SCAIL-2) rather than pose estimation.

Node missing after install. As always with the newer wrapper nodes: update the pack and restart. NLF support ships with WanVideoWrapper, so an old copy simply won't have the class.

The pose looks right but the generation ignores it. That's downstream - NLFPredict only reads pose. Whether the video follows it is set by the pose-embed node's strength and percent range, not here.

CategoryWanVideoWrapper

Inputs (3)

NameTypeDefaultDescription
modelNLFMODEL
imagesIMAGEInput images for the model
per_batchoptINT-1-1–10000How many images to process at once. -1 means all at once.

Outputs (2)

NameTypeDescription
pose_resultsNLFPRED
bboxesBBOX