M5 VAE Errors

#10
by c1t1zen - opened

In ComfyUI on Mac M5 processors the VAEs error out on Float64. I switched to LTX 2.3 VAEs and it works.
Wow this runs super fast and really high quality, love it. Thanks.

Is there some VAE setting I can adjust to make this work on M5 processor and LTX 2.5 VAEs?
Thanks again for the great video model.

Same issue happening on M2 Ultra Mac Studio here with the 2.5 VAEs - will try the 2.3s

Found the exact cause β€” it's a hardcoded float64 in the VAE decoder's RoPE that MPS doesn't support.

In /comfy/ldm/lightricks/vae/na_diffusion_decoder.py, rope_inv_freqs() creates two tensors with dtype=torch.float64 directly on the device:
"""
def rope_inv_freqs(dim, base=10000.0, device=None):
exponents = torch.arange(0, dim, 2, dtype=torch.float64, device=device) / dim
return (1.0 / torch.pow(torch.tensor(float(base), dtype=torch.float64, device=device), exponents)).to(torch.float32)
"""

MPS has no float64 support at all, so both calls throw TypeError: Cannot convert a MPS Tensor to float64 dtype. Changing both to float32 fixes it with no visible quality loss (RoPE inverse-frequency math doesn't need double precision):
"""
def rope_inv_freqs(dim, base=10000.0, device=None):
exponents = torch.arange(0, dim, 2, dtype=torch.float32, device=device) / dim
return (1.0 / torch.pow(torch.tensor(float(base), dtype=torch.float32, device=device), exponents)).to(torch.float32)
"""

Confirmed working after patching this on an M5 β€” full quality video + audio VAE decode with no further errors. Thanks to Claude for helping me sort this, hopefully useful for others and can be fixed upstream at some point so others don't have to manually fix it. I honestly can't believe how fast this runs on M5 chip.

Sign up or log in to comment