Swift应用中集成Core ML实现Stable Diffusion模型
swift-coreml-diffusers项目展示如何在Swift应用中集成Apple的Core ML Stable Diffusion实现。该应用支持macOS和iOS设备,采用DPM-Solver++调度器提高性能。首次启动时自动下载量化Core ML模型,可利用CPU、GPU和Neural Engine加速。项目适合快速迭代开发,也可作为在Apple设备上实现AI图像生成的示例代码。
这是一个原生应用程序,展示了如何在原生Swift UI应用程序中集成Apple的Core ML稳定扩散实现。Core ML版本是diffusers库中稳定扩散实现的简化版。这个应用程序可用于更快速的迭代,或作为任何用例的示例代码。
以下是该应用在macOS上的样子:
首次启动时,应用程序会从Hugging Face Hub的这个位置下载一个包含Stability AI的Stable Diffusion v2基础版Core ML版本的压缩包。这个过程需要一段时间,因为要下载和解压几GB的数据。
为了更快的推理,我们使用了一个非常快速的调度器:DPM-Solver++,我们从diffusers的DPMSolverMultistepScheduler实现将其移植到了Swift。
该应用支持使用coremltools
版本7或更高版本量化的模型。这需要macOS 14或iOS/iPadOS 17。
量化模型运行更快,但需要macOS Ventura 14或iOS/iPadOS 17。
应用程序将尝试猜测运行模型的最佳硬件。您可以使用控制侧边栏中的"高级"部分覆盖此设置。
在macOS上测试应用程序的最简单方法是从Mac App Store下载。
您需要Xcode来构建应用程序。克隆仓库后,请在common.xcconfig
中更新您的开发团队标识符。iOS需要代码签名,但目前在macOS上已禁用。
iPhone上的性能有些不稳定,有时会慢约20倍,手机会发热。这是因为模型无法安排在神经引擎上运行,一切都在CPU上进行。我们尚未确定这个问题的原因。如果您观察到同样的情况,以下是一些建议: