How xiaobenli00/etch-x works
ETCH-X is a two-stage inference product for fitting expressive SMPL-X bodies to clothed-human scans. Stage 1 samples and centers scan points, predicts tightness vectors, and writes inner-body points; Stage 2 voxelizes those points, performs LVD dense-correspondence fitting, and emits fitted-body results. Optional hand processing segments hands, fits MANO, and grafts them onto the body. Groups distinguish inference orchestration, learned models, fitting, and data preparation. Stage 2 excerpts are partial, so internal links are limited to the documented workflow and visible fitting responsibilities.
Main entry points: infer_stage2.py Stage 2 inference · infer_stage1.py Stage 1 inference · fit_SMPLX.py SMPL-X fitting · models_pointcloud.py Tightness network
Components 17
Undressing
- Stage 1 inference
infer_stage1.py - Tightness network
src/etchx/models/models_pointcloud.py - Geometry utilities
src/etchx/utils/geometry.py
Dense fitting
- Stage 2 inference
infer_stage2.py - LVD network
src/nicp/lvd_templ/modules/module.py - IFNet module
src/nicp/lvd_templ/pl_modules/pl_module_ifnet.py - SMPL-X fitting
src/nicp/lvd_templ/evaluation/fit_SMPLX.py - Mesh rendering
src/nicp/lvd_templ/utils/smpl_utils/render.py
Hand refinement
- Hand segmentation data
src/nicp/lvd_templ/data/dataset_hand_seg.py - Hand segmentation model
src/nicp/lvd_templ/pl_modules/model_hand_seg.py - Hand LVD data
src/nicp/lvd_templ/data/dataset_mano_hand.py - MANO fitting
infer_stage2.py - Hand refinement
src/nicp/lvd_templ/evaluation/fit_SMPLX.py
Data preparation
- Model paths
src/nicp/lvd_templ/paths.py
Other components
- Human scan
- Inner-body points
- Fitted body output
Connections 16
- Human scan → Stage 1 inference: provides scan
- Stage 1 inference → Tightness network: runs network
- Stage 1 inference → Geometry utilities: uses geometry
- Stage 1 inference → Inner-body points: writes points
- Inner-body points → Stage 2 inference: feeds stage two
- Stage 2 inference → Model paths: selects templates
- Stage 2 inference → LVD network: queries correspondences
- Stage 2 inference → IFNet module: builds refinement
- Stage 2 inference → SMPL-X fitting: fits body
- SMPL-X fitting → Fitted body output: produces mesh
- Stage 2 inference → Hand segmentation data: loads hand data
- Stage 2 inference → Hand segmentation model: segments hands
- Stage 2 inference → Hand LVD data: loads hand LVD
- Stage 2 inference → MANO fitting: fits MANO
- Stage 2 inference → Hand refinement: refines graft
- Stage 2 inference → Mesh rendering: renders outputs