Instructions to use Cloth-splatters/dexgarmentlab-folding-lifting-state-est-gps with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use Cloth-splatters/dexgarmentlab-folding-lifting-state-est-gps with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("Cloth-splatters/dexgarmentlab-folding-lifting-state-est-gps", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
dexgarmentlab-folding-lifting-state-est-gps
GPSStateEstModel β graph-based (GNN + Transformer) state estimation for
variable-vertex cloth meshes. Reconstructs the full cloth mesh state from a
partial point cloud observation via DDPM diffusion, conditioned on each
cloth's own rest state and topology (no global template).
- Task data: DexGarmentLab mixed-garment fold + lift-place demos, point-cloud-cleaned (
dexgarmentlab_folding_lifting_meshes_clean.h5, Cloth-splatters/dexgarmentlab-folding-lifting-meshes-clean) - Formulation: DDPM diffusion
- Rest-position centering:
self - Cross-attention mode: parallel
- Max vertices per mesh: 2048
- Best validation loss: 0.0002055970478668066 (checkpoint in
model/ischeckpoint-best) - Training run:
dexgarment_ddpm_clean_2026-08-05_14-28-23_475354(full config inconfig.yml)
Retrained on cleaned point clouds (2026-08-06)
This revision supersedes the 2026-08-04 upload, which was trained on
dexgarmentlab_folding_lifting_meshes.h5 before the point-cloud audit. Roughly
half of those observations carried scene geometry (floor / fixture returns) mixed
into the cloth points; the cleaned dataset removes it and trims the affected
frames. The previous revision is still reachable by commit hash.
Validation losses are not comparable across that change β the split itself changed, so a number from the pre-clean revision does not sit on the same scale as the one above.
Rest-position centering: self
This checkpoint was trained with the self rest-position centering convention:
the per-cloth rest (template) positions fed to the model are centered by
subtracting the rest mesh's own (valid-vertex) mean, independent of the
observed point cloud.
Implications:
- The model is translation-invariant in rest space, which makes it suitable for real-world inference: the canonical template can live in any coordinate frame relative to the camera point cloud.
- At inference, the rest positions must be self-centered the same way. Pipelines
in the training repo read
model.config.rest_pos_centering(recorded as"self"in this checkpoint'sconfig.json) and do this automatically. - Not interchangeable with checkpoints trained with the legacy
pcdconvention (all state-estimation checkpoints in this org trained on or before 2026-05-10).
v2 (2026-08-20) β this revision
Retrained with the v2 recipe: EMA weights (shipped in model/), heavy
occlusion/outlier augmentation (fold-unfold-lift set, scale 0.8-1.25, no yaw).
Best validation MSE 2.72e-4 mΒ² (previous release: 6.26e-4); held-out first-frame
reconstruction better on 7/8 test cloths, and the TNLC_Jacket001_0 hard start
improves from rank 136 to rank 120 in the 239-mesh identification probe.
Sequential cross-attention, 200k steps. The previous release remains available at
revision 204401acd818e8ef9c3ad4b014bdd34206c149a3.
v2-tf2 (2026-08-21) β this revision
The v2 recipe (EMA + heavy augmentation) plus two-frame temporal training
(num_context_frames: 2): during training the model cross-attends to the
current cloud and one from 1-5 frames earlier. At inference it runs
single-frame (pcd_prev=None duplicates the current cloud β the
trajectory-start pair it trained on); the temporal input adds 2 % if
supplied. The two-frame training acts as a temporal-consistency regularizer
and yields the best checkpoint on every measured axis: best val (2.38e-4 mΒ²),
frame-sweep worst observation 20 of 239 (predecessors: 56-107), the
TNLC_Jacket001_0 hard start at identification rank 3 (was 120-136), held-out
identify-then-track kept 7/8 with MAP correct 6/8. Samplers saturate at 3
denoising steps (21 mm mean vertex error). Previous revision (ddpm_v2,
the v2 recipe without temporal training): 594ce1af02d320dff3014418a309462345fa76b3.
v2-tf2-mismatch (2026-08-28) β this revision
The v2-tf2 recipe plus template-size mismatch augmentation
(template_mismatch_range: [0.5, 2.0]): during training the rest template
alone is rescaled by a log-uniform factor, so the template/observation size
ratio stops being a constant 1 and the model must take scale from the
observation, using the template for shape only. On the mismatched-template
eval this revision is flat (~30 mm mean vertex error) across template scale
factors 0.5β2 where the previous revision degrades 10β20x (160β250 mm at
factor 1.88β2), and it ties the previous revision at true size (masked MSE
9.1e-4 vs 9.7e-4 at 5 denoising steps). On the real take-2 pants it tracks at
metric scale β no hand-tuned template rescale β matching the previous
revision's hand-tuned-scale arm (symmetric Chamfer 9.97 vs 9.61 mm).
Training val 3.06e-4 mΒ² sits above the previous revision's 2.38e-4 by design:
the augmentation is train-only and val templates are always true-size.
Previous revision (ddpm_v2_tf2, no mismatch augmentation): b0d762db67a12722817665a5365fa010bf589b4c.
- Downloads last month
- -