Spaces:
Sleeping
Sleeping
Sho3lan
fix: lazy-load PTv3Object/spconv — not used by skeleton model (michelangelo_encoder only)
9ed5d86 | from dataclasses import dataclass | |
| from .michelangelo.get_model import get_encoder as get_encoder_michelangelo | |
| from .michelangelo.get_model import AlignedShapeLatentPerceiver | |
| from .michelangelo.get_model import get_encoder_simplified as get_encoder_michelangelo_encoder | |
| from .michelangelo.get_model import ShapeAsLatentPerceiverEncoder | |
| try: | |
| from .pointcept.models.PTv3Object import get_encoder as get_encoder_ptv3obj | |
| from .pointcept.models.PTv3Object import PointTransformerV3Object | |
| _ptv3obj_available = True | |
| except Exception: | |
| get_encoder_ptv3obj = None | |
| PointTransformerV3Object = None | |
| _ptv3obj_available = False | |
| class _MAP_MESH_ENCODER: | |
| ptv3obj = PointTransformerV3Object | |
| michelangelo = AlignedShapeLatentPerceiver | |
| michelangelo_encoder = ShapeAsLatentPerceiverEncoder | |
| MAP_MESH_ENCODER = _MAP_MESH_ENCODER() | |
| def get_mesh_encoder(**kwargs): | |
| MAP = { | |
| 'michelangelo': get_encoder_michelangelo, | |
| 'michelangelo_encoder': get_encoder_michelangelo_encoder, | |
| } | |
| if _ptv3obj_available: | |
| MAP['ptv3obj'] = get_encoder_ptv3obj | |
| __target__ = kwargs['__target__'] | |
| del kwargs['__target__'] | |
| assert __target__ in MAP, f"expect: [{','.join(MAP.keys())}], found: {__target__}" | |
| return MAP[__target__](**kwargs) |