Running it on a M1 iMac with 16GB memory, I get the following issue both with metal and when using SKIP_METAL=1 bash setup.sh. Does this happen to me only?
Sampling sparse structure: 100%|████████████████| 12/12 [06:23<00:00, 31.94s/it]
Sampling shape SLat: 0%| | 0/12 [00:04<?, ?it/s]
Traceback (most recent call last):
File "/Users/user/Desktop/Programming/trellis-mac/generate.py", line 234, in
main()
File "/Users/user/Desktop/Programming/trellis-mac/generate.py", line 88, in main
outputs = pipeline.run(
File "/Users/user/Desktop/Programming/trellis-mac/.venv/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
return func(*args, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/trellis2_image_to_3d.py", line 547, in run
shape_slat = self.sample_shape_slat(
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/trellis2_image_to_3d.py", line 260, in sample_shape_slat
slat = self.shape_slat_sampler.sample(
File "/Users/user/Desktop/Programming/trellis-mac/.venv/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
return func(*args, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/flow_euler.py", line 208, in sample
return super().sample(model, noise, cond, steps, rescale_t, verbose, neg_cond=neg_cond, guidance_strength=guidance_strength, guidance_interval=guidance_interval, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/.venv/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
return func(*args, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/flow_euler.py", line 121, in sample
out = self.sample_once(model, sample, t, t_prev, cond, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/.venv/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
return func(*args, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/flow_euler.py", line 79, in sample_once
pred_x_0, pred_eps, pred_v = self._get_model_prediction(model, x_t, t, cond, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/flow_euler.py", line 49, in _get_model_prediction
pred_v = self._inference_model(model, x_t, t, cond, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/guidance_interval_mixin.py", line 11, in _inference_model
return super()._inference_model(model, x_t, t, cond, guidance_strength=guidance_strength, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/classifier_free_guidance_mixin.py", line 23, in _inference_model
std_pos = x_0_pos.std(dim=list(range(1, x_0_pos.ndim)), keepdim=True)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/modules/sparse/basic.py", line 296, in std
mean = self.mean(dim=dim, keepdim=True)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/modules/sparse/basic.py", line 287, in mean
return self.reduce(op='mean', dim=dim, keepdim=keepdim)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/modules/sparse/basic.py", line 283, in reduce
red = torch.segment_reduce(red, reduce=op, lengths=self.seqlen)
NotImplementedError: The operator 'aten::segment_reduce' is not currently implemented for the MPS device. If you want this op to be considered for addition please comment on pytorch/pytorch#141287 and mention use-case, that resulted in missing op as well as commit hash 70d99e998b4955e0049d13a98d77ae1b14db1f45. As a temporary fix, you can set the environment variable PYTORCH_ENABLE_MPS_FALLBACK=1 to use the CPU as a fallback for this op. WARNING: this will be slower than running natively on MPS.
Running it on a M1 iMac with 16GB memory, I get the following issue both with metal and when using
SKIP_METAL=1 bash setup.sh. Does this happen to me only?Sampling sparse structure: 100%|████████████████| 12/12 [06:23<00:00, 31.94s/it]
Sampling shape SLat: 0%| | 0/12 [00:04<?, ?it/s]
Traceback (most recent call last):
File "/Users/user/Desktop/Programming/trellis-mac/generate.py", line 234, in
main()
File "/Users/user/Desktop/Programming/trellis-mac/generate.py", line 88, in main
outputs = pipeline.run(
File "/Users/user/Desktop/Programming/trellis-mac/.venv/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
return func(*args, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/trellis2_image_to_3d.py", line 547, in run
shape_slat = self.sample_shape_slat(
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/trellis2_image_to_3d.py", line 260, in sample_shape_slat
slat = self.shape_slat_sampler.sample(
File "/Users/user/Desktop/Programming/trellis-mac/.venv/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
return func(*args, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/flow_euler.py", line 208, in sample
return super().sample(model, noise, cond, steps, rescale_t, verbose, neg_cond=neg_cond, guidance_strength=guidance_strength, guidance_interval=guidance_interval, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/.venv/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
return func(*args, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/flow_euler.py", line 121, in sample
out = self.sample_once(model, sample, t, t_prev, cond, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/.venv/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
return func(*args, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/flow_euler.py", line 79, in sample_once
pred_x_0, pred_eps, pred_v = self._get_model_prediction(model, x_t, t, cond, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/flow_euler.py", line 49, in _get_model_prediction
pred_v = self._inference_model(model, x_t, t, cond, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/guidance_interval_mixin.py", line 11, in _inference_model
return super()._inference_model(model, x_t, t, cond, guidance_strength=guidance_strength, **kwargs)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/pipelines/samplers/classifier_free_guidance_mixin.py", line 23, in _inference_model
std_pos = x_0_pos.std(dim=list(range(1, x_0_pos.ndim)), keepdim=True)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/modules/sparse/basic.py", line 296, in std
mean = self.mean(dim=dim, keepdim=True)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/modules/sparse/basic.py", line 287, in mean
return self.reduce(op='mean', dim=dim, keepdim=keepdim)
File "/Users/user/Desktop/Programming/trellis-mac/TRELLIS.2/trellis2/modules/sparse/basic.py", line 283, in reduce
red = torch.segment_reduce(red, reduce=op, lengths=self.seqlen)
NotImplementedError: The operator 'aten::segment_reduce' is not currently implemented for the MPS device. If you want this op to be considered for addition please comment on pytorch/pytorch#141287 and mention use-case, that resulted in missing op as well as commit hash 70d99e998b4955e0049d13a98d77ae1b14db1f45. As a temporary fix, you can set the environment variable
PYTORCH_ENABLE_MPS_FALLBACK=1to use the CPU as a fallback for this op. WARNING: this will be slower than running natively on MPS.