Apple’s machine learning team has made Stable Diffusion dramatically more accessible on Mac hardware, shipping converted Core ML checkpoints for versions 1.4, 1.5, 2 base, and 2.1 base directly on the Hugging Face Hub. The repo includes Python and Swift inference code, and Apple even released a native Mac App Store application so users can generate images without touching a terminal.
The headline number is 18 seconds per image on an M1 Max with 32 GPU cores and 64GB of RAM, using the original attention implementation, all compute units, and macOS Ventura 13.1 Beta 4. That’s a meaningful benchmark for local inference, though the team is careful to note that performance varies by hardware and model variant. Core ML can split execution across CPU, GPU, and the Neural Engine, but the two attention implementations — original and split_einsum — behave differently depending on the device. Split_einsum works across all compute units, while original is restricted to CPU and GPU but can actually be faster on some systems.
There’s a compatibility wrinkle worth flagging: you need macOS Ventura 13.1 or newer. Earlier versions of macOS can produce black images and significantly slower generation times, because Apple’s implementation depends on Core ML improvements introduced in that update. The model repos are organized into packages (for Python) and compiled (for Swift) variants, with the compiled versions chunking the UNet weights for iOS and iPadOS compatibility.
This is the most polished first-party path to local Stable Diffusion on Apple hardware to date. Apple previously introduced split_einsum as an attention optimization, and now it’s shipping pre-converted weights rather than expecting developers to wrestle with conversion scripts themselves — a meaningful shift from a company that tends to keep its ML infrastructure close to the chest. The real question is whether 18 seconds on a maxed-out M1 Max translates to usable speeds on more common configurations like the base M1 or M2 with 8GB of RAM. If it doesn’t, cloud inference remains the practical default for most users.