NLF Model Loader
Point ComfyUI at the SCAIL pose model
- nlf_model
This one's boring on purpose, and that's fine - it just loads a model file so the rest of the pack has something to work with. NLF Model Loader is the entry point to kijai's ComfyUI-SCAIL-Pose, a cleaned-up port of Z.ai's own zai-org/SCAIL-Pose pipeline. NLF stands for Neural Localizer Fields, and unlike DWPose or OpenPose it isn't a flat 2D skeleton detector - it predicts full 3D, multi-person pose and shape from ordinary images. That 3D prediction is what feeds the rest of this pack: rendering it into a 2D pose image, or baking it into an animated 3D skeleton.
Why you'd reach for it
If you've seen kijai's "SCAIL pose control" example workflow in ComfyUI-WanVideoWrapper - driving a Wan-based SCAIL generation off an extracted pose sequence instead of raw video - this loader is step one of that graph. Worth knowing going in: Z.ai's newer SCAIL-2 release deliberately dropped the skeleton requirement (it takes a reference image and driving video directly now, no stick figure needed). So depending on which SCAIL checkpoint you're actually driving, this whole NLF extraction pipeline might be optional rather than mandatory - check which workflow you're following before assuming you need it.
How it works
There's no real mechanism to explain here beyond "loads a .safetensors file." It scans ComfyUI/models/nlf/ for weight files and hands you back a loaded model object that NLFPredictPoses consumes downstream. All the interesting behavior - detection, 3D estimation, rendering - lives in the nodes after this one.
The inputs and outputs that matter
There's exactly one input and one output, so this is short:
nlf_model- an enum dropdown listing whatever.safetensorsfiles you've dropped intoComfyUI/models/nlf/. The node's own tooltip is direct about it: "NLF model (.safetensors) from ComfyUI/models/nlf/".- Output:
nlf_model(typeNLF_MODEL) - wire this straight intoNLFPredictPoses.
How to install it
Via ComfyUI Manager: search ComfyUI-SCAIL-Pose, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-SCAIL-Pose
pip install -r ComfyUI-SCAIL-Pose/requirements.txt
That requirements file pulls in taichi, opencv-python, and pillow - taichi is only actually exercised by the render node later in the pipeline, not by this loader, but it installs alongside everything else.
Then the model itself. Create ComfyUI/models/nlf/ if it doesn't exist, and drop in nlf_l_multi_0.3.2_fp16.safetensors from Hugging Face: Kijai/WanVideo_comfy, under the SCAIL subfolder. That's the file the pack's own README names explicitly - there's no auto-download here, you're placing it by hand.
Common issues & troubleshooting
The dropdown is empty. This is the single most common thing that'll happen with this node, and it's expected behavior, not a bug - the schema literally ships with zero choices until a model file exists in the right folder. If you just downloaded the safetensors file, double check it actually landed in ComfyUI/models/nlf/ (not models/checkpoints or some other folder you had muscle memory for) and restart ComfyUI - this loader scans the folder at startup, not live.
Wrong file, or a typo in the filename. The README names one specific file: nlf_l_multi_0.3.2_fp16.safetensors. If you renamed it on the way down, or grabbed a different file from the same repo folder, the loader will still show it in the dropdown (it just lists whatever's there) but downstream nodes may choke on it, since nothing here validates the file's contents against what NLFPredictPoses expects.
You restarted and it's still empty. Check permissions on the nlf folder and that the download actually completed - a partial download from a large HF file is an easy way to end up with a file ComfyUI can see but can't load.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| nlf_model | COMBO | NLF model (.safetensors) from ComfyUI/models/nlf/ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| nlf_model | NLF_MODEL | — |