ml-stable-diffusion
苹果官方 Stable Diffusion Core ML 转换工具,让 AI 绘图在 Mac M系列芯片上本地运行
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
苹果官方 Stable Diffusion Core ML 转换工具,让 AI 绘图在 Mac M系列芯片上本地运行
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你是一名独立开发者,手头只有一台 MacBook Pro M2,想用 Stable Diffusion 生成产品配图。传统的方案是花大价钱装一台带 RTX 4090 的 PC,或者按量付费给云端 API。苹果推出的 ml-stable-diffusion 改变了这个局面——它将 Stable Diffusion 模型转换为苹果自研的 Core ML 格式,直接在 Apple Silicon 上本地运行推理,零云成本、零延迟、隐私数据不出本地。
这个项目由苹果官方机器学习团队维护,Star 数超过 17,000,是 Apple Silicon 生态中最具代表性的 AI 开源工具之一。它的核心价值不是「造轮子」重新实现 SD,而是做了一座桥:让 PyTorch 生态的预训练模型,通过 Core ML 编译器,在苹果硬件上跑出接近原生应用的性能。
从代码结构看,整个项目分为两大模块:Python 转换层和 Swift 执行层。
Python 层(python_coreml_stable_diffusion/) 负责将 PyTorch 模型转换为 Core ML mlprogram,包括:
torch2coreml.py:模型转换主入口,处理权重映射和量化unet.py:SD 的核心 U-Net 结构,含注意力机制(Attention)和 GroupNorm 归一化attention.py:多头自注意力实现,支持 SD-XL 等大分辨率模型pipeline.py:完整的推理 Pipeline,整合 VAE、Text Encoder 和 U-Netcontrolnet.py:ControlNet 支持(扩展功能)mixed_bit_compression_*.py:多 bit 量化工具,支持 FP16/INT8/混合位宽压缩Swift 层(swift/) 提供原生 iOS/macOS 调用接口,通过 Package.swift 发布,可直接集成到 Xcode 项目中。

图1:Core ML 转换后的 Stable Diffusion 生成效果展示
| 组件 | 技术选型 |
|---|---|
| 深度学习框架 | PyTorch 2.x |
| 模型格式 | Core ML mlprogram |
| 推理 Pipeline | diffusers 0.30.2 + transformers 4.44.2 |
| 编译器 | coremltools >= 8.0 |
| 量化方案 | FP16 / INT8 / 混合位宽(2~8bit) |
| 隐私水印 | invisible-watermark |
Core ML 的优势在于它是苹果操作系统的第一方 ML 框架——系统调度器知道如何高效分配统一内存(Unified Memory),GPU Neural Engine 和 CPU 协同工作,无需额外驱动。对比在 NVIDIA GPU 上通过 CUDA 运行,虽然理论算力弱于独立显卡,但统一内存架构避免了 GPU→CPU 的数据搬运开销,在实际推理中体验差距并不悬殊。
部署过程比预期简洁。Clone 仓库后,主要步骤只有三步:
# 1. 安装依赖
pip install -e . --verbose
# 2. 下载 PyTorch 模型(通过 diffusers)
# 3. 转换为 Core ML(以 SD 1.5 为例)
python -m python_coreml_stable_diffusion.torch2coreml --model-version runwayml/stable-diffusion-v1-5 ...
# 4. Swift 调用(macOS App 开发)
swift build
项目提供了三种精度配置:FP16(精度高,体积大)、INT8(体积小,精度略降)、混合位宽(可自定义每层 bit 数)。assets 目录下的 PSNR 对比图直观展示了不同量化方案在质量-体积上的 trade-off。

图2:FP16 精度在 Apple Silicon GPU 上的性能表现
最大门槛:必须有一台 Apple Silicon Mac(M1/M2/M3 系列),x86 Mac 或 Linux/Windows 机器均无法使用。苹果并未提供非苹果平台的替代方案。此外,Core ML 模型目前只支持特定的 Stable Diffusion 版本(SD 1.5、SD 2.1、SDXL),自定义模型需要自行适配转换脚本。
这个项目并非没有争议。苹果的 Core ML 工具链是闭源的——coremltools 虽然是 pip 包,但底层编译器依赖苹果私有的编译后端。这意味着:
此外,项目本身不包含 Web UI,只是一个模型转换库。如果希望有图形界面,需要借助第三方工具包装一层。
从行业视角看,ml-stable-diffusion 代表了一个重要趋势:端侧 AI 推理正在从边缘走向主流。苹果并非唯一走这条路线的厂商——高通、联发科、英特尔都在推各自的 NPU 工具链,但苹果的优势在于:硬件软件垂直整合,Core ML API 覆盖了从模型转换到推理调度的全链路。
项目 Star 曲线稳定增长,至今仍保持日均数十个新 Star,说明需求确实存在。开发者社区涌现了一批基于此项目的衍生工具(如 Stable Diffusion Mac GUI、本地 AI 绘图 App),进一步降低了普通用户的上手门槛。
对于 AI 开发者而言,ml-stable-diffusion 提供了一个高质量的参考实现:如何将 PyTorch 模型部署到端侧、如何设计量化压缩方案、如何用 Swift 包装 ML 模型。这些工程实践的积累,比项目本身更有长期价值。