
ml-stable-diffusion
在 Mac 和 iPhone 上本地跑 Stable Diffusion,离线出图。
ml-stable-diffusion 是苹果官方开源的 Stable Diffusion 推理实现,专门面向 Apple Silicon 芯片(M1/M2/M3 系列)优化。它把原本依赖 NVIDIA GPU 的扩散模型转换为 Core ML 格式,让 Mac、iPhone、iPad 等设备无需独立显卡即可本地生成图像。项目提供模型转换脚本、Swift 与 Python 推理示例,并支持 PyTorch 权重到 Core ML 的完整流水线,用户可自行转换任意 Stable Diffusion 模型。核心能力包括:利用 Apple Neural Engine 与 GPU 加速、支持图像到图像、文本到图像、负向提示词、无分类器引导、多步采样调度器,以及量化压缩以降低内存占用。它解决的是苹果生态缺少高效本地扩散模型推理方案的问题,让开发者能在端侧离线运行生成式 AI,兼顾隐私与速度。
项目数据
使用教程
⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。
环境要求
- macOS 13.1 或更高版本(模型转换与项目构建)
- Python 3.8(用于模型转换)
- coremltools 7.0(用于模型转换)
- Xcode 14.3 与 Swift 5.8(用于构建 Swift 项目)
- 目标设备:macOS 13.1+,iPadOS/iOS 16.2+(内存优化版需 macOS 14.0+ / iOS 17.0+)
安装与启动步骤
-
1检查系统版本
确保 macOS 版本满足要求,不同用途版本要求不同。
-
2安装转换依赖
安装 Python 3.8 和 coremltools 7.0,用于将 PyTorch 模型转换为 Core ML。
-
3转换模型
使用 python_coreml_stable_diffusion 包转换模型,生成 Core ML 模型文件。
-
4构建 Swift 项目
使用 Xcode 14.3 和 Swift 5.8 构建 StableDiffusion 包。
-
5运行 CLI 示例
使用转换后的模型生成图像,替换资源路径和输出路径。
swift run StableDiffusionSample "a photo of an astronaut riding a horse on mars" --resource-path /your/path/to/mlpackages/Resources/ --seed 93 --output-path /your/path/to/output/image
如何确认成功
运行 CLI 示例后,在输出路径生成以提示词和种子命名的 PNG 图片。
常见问题
Q:支持哪些设备?
A:支持 Apple Silicon 芯片的 Mac、iPhone、iPad,需满足系统版本要求。
Q:内存不足怎么办?
A:在 iOS 上构造 StableDiffusionPipeline 时设置 reduceMemory 为 true。
Q:输出文件如何命名?
A:根据提示词和随机种子命名,如 a_photo_of_an_astronaut_riding_a_horse_on_mars.93.final.png。
注意事项
- 仅支持 Apple Silicon 芯片,Intel Mac 不可用。
- 转换模型需要满足 macOS 13.1、Python 3.8 和 coremltools 7.0。
- 构建 Swift 项目需要 Xcode 14.3 和 Swift 5.8。
- 目标设备运行时版本要求见系统需求。
核心亮点
- 苹果官方维护,与 Core ML、ANE 深度适配,性能与兼容性有保障
- 提供完整转换脚本和 Swift/Python 示例,从 PyTorch 到端侧部署链路清晰
- 支持量化与多种采样器,可在移动端内存受限环境下运行
不足之处
- 仅面向 Apple 平台,无法在 Windows/Linux 或非苹果芯片上使用
- 转换流程对新手仍有一定门槛,模型版本兼容性需自行验证
适用场景
- Mac 用户在本地离线生成插画或概念图,保护隐私
- iOS 开发者在 App 中集成端侧 AI 绘图功能
- 研究人员在 Apple Silicon 上做扩散模型推理性能测试
替代项目
diffusers、stable-diffusion-webui
项目介绍
同类项目推荐
satori
开源
网页代码一键变高清图,放大不糊,不用截图
Enlightened library to convert HTML and CSS to SVG
C2GAN
开源
用关键点精准控制图像生成,让AI画出你想要的结构
[ACM MM 2019 Oral] Cycle In Cycle Generative Adversarial Networks for Keypoint-Guide···
DeTikZify
开源
上传图表或草图,秒变可编译的TikZ矢量代码。
Synthesizing Graphics Programs for Scientific Figures and Sketches with TikZ.
imagen-pytorch
开源
说句话生成高清图,放大也不糊
Implementation of Imagen, Google's Text-to-Image Neural Network, in Pytorch