Apple Silicon (MPS): float64 timestep sinusoid fails — working 3-line fix
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 85/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Ambito
- machine-learning
Direzione di ricerca
La correzione è completamente scritta: sostituisci il calcolo delle sinusoidi in float64 in MOSSImageTransformer.forward all'interno di pipeline_moss_image.py con la versione calcolata su CPU mostrata nel diff, e applica la stessa modifica alle copie sotto transformer/ e scheduler/. Verifica prima su CPU che gli output siano invariati, poi esegui la generazione con il dispositivo MPS se disponibile. Fatto quando le tre copie sono corrette e la generazione produce immagini corrette sia su CPU che su MPS.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
On Apple Silicon (PyTorch MPS), generation fails on the first step:
TypeError: Cannot convert a MPS Tensor to float64 dtype as the MPS framework doesn't
support float64.
The cause is the float64 timestep sinusoid in MOSSImageTransformer.forward
(pipeline_moss_image.py). MPS has no float64.
Fix (verified)
Compute the sinusoid on the CPU in float64 (numerically identical to training) and move
the float32 result back to the device:
- freq = 10000 ** (-torch.arange(half, device=times.device, dtype=torch.float64) / half)
- phase = times.double()[:, None] * freq
- embedding = torch.cat((phase.cos(), phase.sin()), -1).float()
+ freq = 10000 ** (-torch.arange(half, device="cpu", dtype=torch.float64) / half)
+ phase = times.detach().cpu().double()[:, None] * freq
+ embedding = torch.cat((phase.cos(), phase.sin()), -1).float().to(times.device)
Important: use .cpu().double(), not .to("cpu", torch.float64). On MPS (torch 2.14.1),
torch.tensor([1000., 976., 24.], device="mps").to("cpu", torch.float64) silently returns
[0., 0., 0.]. Every timestep then becomes 0 and the output is pure noise, with no error.
Verification
- MacBook Pro, M5 Pro, 64 GB; macOS 27.0.1; torch 2.14.1; diffusers 0.42.0.dev0;
transformers 5.20.2;OpenMOSS-Team/MOSS-Image-SFT@f972bd4 - Same seed and prompt at 512×512, 10 steps, CFG 1: the MPS output matches the CPU
reference image (MPS 4 s vs CPU 701 s). - 1024×1024, 25 steps, CFG 2.5: 89 s on MPS, correct output.
- Every other component matched CPU on MPS in a layer-by-layer comparison: text
encoder, attention, RoPE, embedders, all 42 blocks.
Notes for Mac users
- Load with
torch_dtype={"default": torch.bfloat16, "vae": torch.float32}, then
pipe.to("mps"). causal_conv1dandflash-linear-attentionare CUDA-only, so the text encoder uses
transformers' reference kernels. That's slower but correct.torchvisionis required by the Qwen3-VL processor.
Please consider applying this in the repo (including the transformer/ and scheduler/
copies of the file) and listing Apple Silicon as supported.
- Lingua principale
- Python
- Stelle
- 2.2k
- Fork
- 114
- Merge medio
- 9g 1h
- PR unite (30g)
- 1
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di OpenMOSS/MOSS-Image
-
Community project: hosted MOSS-Image studio with a visual JSON layout builder (no ComfyUI needed)Aperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 65/100
OpenMOSS/MOSS-Image#27 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
OpenMOSS/MOSS-Image#10 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 45/100
OpenMOSS/MOSS-Image#28 ·
I maintainer di solito rispondono entro 1 giorno
-
MOSS video?Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
OpenMOSS/MOSS-Image#24 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
OpenMOSS/MOSS-Image#21 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di OpenMOSS/MOSS-Image
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ComposioHQ/awesome-claude-skills#2398 ·
I maintainer di solito rispondono entro 2 giorni
-
bug converter
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
grafana/sigma-rule-deployment#435 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
datamodel-code-generator/datamodel-code-generator#5589 ·
I maintainer di solito rispondono entro 1 giorno
-
Shell: serve the home app's Cookie Policy on a hard reloadForse già presa @2001anshkaushik l’ha presa oggi. Apertafeature module:ai
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
rocketride-org/rocketride-server#2899 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
GEFSv12
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100