Nodes/SAM3D Cam Shot Toolkit/Cam Shot Toolkit: Load Pose Rigs
ComfyUI Node

Cam Shot Toolkit: Load Pose Rigs

Turn a folder of pose GLBs into a scene ingredient

By EnviralDesign·Created 5 months ago·Updated 2 days ago· 1
Cam Shot Toolkit: Load Pose Rigs
    • rigs
    • summary_json
    rig_setpose_rigs/default
    labels

    In the Cam Shot Toolkit's posing group, Load Pose Rigs is the boring node, and that's a compliment. Its whole job is to read a folder of saved pose rigs back into memory as a POSE_RIGS object that Assemble Scene can place on a floor. Save Pose Rig builds the library; this is the librarian.

    Why does this need to exist as a node at all? Because of what the rest of the pipeline costs. Getting a pose into a scene normally means running SAM3D body reconstruction on a photo - a GPU pass with model downloads. By saving a reconstruction once and loading it back as a mesh, you make a pose reference as cheap as a file read. Load is deliberately dependency-free on the heavy side of the pack: it reads the .glb with a numpy-only GLB reader baked into the pack (no trimesh, no pygltflib), so once the pack is installed this step is instant and CPU-only.

    What a "rig set" is

    A rig set is a folder that Save Pose Rig produced. It contains one rigged .glb per gesture plus a rig.json index file that records each rig's id, label, actor count, footprint, and capture camera. The default folder name is pose_rigs/default, and relative paths resolve against your ComfyUI output folder first, then the input folder - so pose_rigs/default normally means ComfyUI/output/pose_rigs/default. You can also give Load an absolute path if your rigs live somewhere more organized.

    Inputs and outputs

    • rig_set - the folder. Empty of worries as long as Save wrote there.
    • labels - optional comma-separated list (e.g. wave,point). Empty means load every rig in the set; a named label that doesn't exist raises a clear error rather than silently loading nothing.

    Outputs are rigs (POSE_RIGS) and summary_json - a handy digest with the set directory and, per rig, its id, label, actor count, and vertex/face counts. Wire rigs straight into Assemble Scene.

    Install

    ComfyUI Manager (search sam3d-body-comfyUI-camshottoolkit) or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/EnviralDesign/sam3d-body-comfyUI-camshottoolkit
    cd sam3d-body-comfyUI-camshottoolkit
    python -m pip install -r requirements.txt
    

    Restart after installing. Requirements cover the whole pack, so expect the heavier SAM3D-side stack (torchvision, transformers, timm, pytorch-lightning) even though Load itself only really needs numpy.

    Gotchas

    The classic failure is FileNotFoundError: no rig set found for 'pose_rigs/default' (looked for rig.json in ...) - which tells you exactly where it looked. The two usual causes: you never ran Save Pose Rig (there's no rig.json yet), or the folder name you typed doesn't match what Save wrote. Remember relative paths resolve under the output folder, which catches people who expect them under input. A related trap: Load validates against the index, so if you hand-edit or move a .glb out of its set folder, Load either skips it or complains - keep the folder intact and let Save manage it.

    One more honest note on expectations. These rigs are SAM3D reconstructions: fine as pose-reference geometry, not production 3D assets. Load doesn't care - it treats them as placeable, yawable, mirrorable bodies on a floor, which is exactly the use they're built for.

    CategoryCamShotToolkit/posing

    Inputs (2)

    NameTypeDefaultDescription
    rig_setSTRINGpose_rigs/defaultRig set folder (absolute, or relative to the ComfyUI output / input folder).
    labelsSTRINGOptional comma-separated labels to load. Empty = every rig in the set.

    Outputs (2)

    NameTypeDescription
    rigsPOSE_RIGS
    summary_jsonSTRING