ComfyUI Node

Load SMPLx

The one file every node in this pack quietly needs

By ameliacode·Created 5 months ago·Updated 2 months ago· 5
Load SMPLx
    • smplx_model
    model_sourcelocal
    genderneutral
    model_path/tmp/ComfyUI/models/smplx
    hf_token

    Load SMPLx looks like the boring node at the top of the graph, and it kind of is. But it's also the one that decides whether the rest of this pack works at all. Every estimator loader in ComfyUI-SMPLx-Estimator - Load NLF, Load Multi-HMR, all of them - demands an smplx_model input that can only come from this node. Skip it and nothing downstream even loads.

    Here's the deal in one paragraph. SMPL-X is a parametric body model: a mesh with a fixed number of vertices that you deform by changing shape parameters (betas), joint rotations (body, hands, jaw, eyes), and facial expression coefficients. The estimators in this pack are good at predicting those numbers from a photo, but they don't ship the actual body model you need to turn the numbers into geometry. That's what Load SMPLx provides. Wire its smplx_model output into whichever estimator loader you're using and you're in business.

    What you actually set

    The node has four inputs and honestly you touch two of them:

    • gender - neutral, male, or female. Defaults to neutral, which is the sensible default for estimation. It picks which SMPLX_<GENDER>.npz file gets loaded.
    • model_source - local (default) reads from your ComfyUI models folder; huggingface pulls from an HF repo instead. For local, the loader expects ComfyUI/models/smplx/SMPLX_NEUTRAL.npz (or _MALE / _FEMALE).
    • model_path - points at that folder. Leave it unless you keep weights somewhere custom.
    • hf_token - only needed if you're pulling a gated/private HF repo.

    The output is a single smplx_model connection, which is just a bundle carrying the model path and your chosen gender. It feeds every loader node in the pack.

    Installing the pack - and the file that trips everyone

    Install the pack itself the usual way: ComfyUI Manager, search SMPLx Estimator, install, restart. Manual install is the same as any custom node:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ameliacode/ComfyUI-SMPLx-Estimator.git
    cd ComfyUI-SMPLx-Estimator
    pip install -r requirements.txt
    python install.py
    

    Then restart. The install script clones the vendored estimator sources (WiLoR, Multi-HMR, Multi-HMR2, SMIRK) into vendor/ - that part is automatic.

    The model file is the trap. SMPL-X is registration-walled by the Max Planck Institute. You can't just download it; you have to register at smpl-x.is.tue.mpg.de, agree to their terms, and drop SMPLX_NEUTRAL.npz into ComfyUI/models/smplx/ yourself. The loader checks for it and raises a clear error pointing you at that page if it's missing, but people still get stuck here because it's the one download in the whole pack that can't be automated. If you load a checkpoint before this file exists, the error is genuinely helpful - read it.

    Gotchas worth knowing

    • Gender mismatch. If your estimators keep resolving to a model you didn't intend, check that the gender here matches the SMPLX_*.npz file actually on disk. neutral is the standard for estimation; male/female is mostly for when you want a specific shape as the base.
    • Research-only. SMPL-X is MPI non-commercial. The whole pack (every estimator weight) is non-commercial too, so keep outputs for research - this isn't the pack for a commercial pipeline.

    The read is straightforward once you get past the registration dance. It's a 15-minute detour that costs everyone once, and then this node is the thing you never think about again - which is exactly what a foundation node should be.

    CategorySMPLx Estimator/loaders

    Inputs (4)

    NameTypeDefaultDescription
    model_sourceCOMBOlocal2 options: local, huggingface
    genderCOMBOneutral3 options: neutral, male, female
    model_pathSTRING/tmp/ComfyUI/models/smplxSMPL-X folder (default: ComfyUI/models/smplx/ with SMPLX_<GENDER>.npz). model_source=local.
    hf_tokenSTRINGHuggingFace access token (model_source=huggingface).

    Outputs (1)

    NameTypeDescription
    smplx_modelSMPLX_MODEL