在Mac上原生运行Stable Diffusion

作者:Sec-Labs | 发布时间:

432af09b41224726

项目地址

https://github.com/godly-devotion/MochiDiffusion

Mochi Diffusion

在 Mac 上原生运行 Stable Diffusion

English, 한국어, 中文

 

768cd605bc233912

 

简介

本应用内置 Apple 的 Core ML Stable Diffusion 框架 以实现在搭载 Apple 芯片的 Mac 上用极低的内存占用发挥出最优性能,并同时兼容搭载 Intel 芯片的 Mac。

功能

  • 极致性能和极低内存占用 (使用神经网络引擎时 ~150MB)
  • 在所有搭载 Apple 芯片的 Mac 上充分发挥神经网络引擎的优势
  • 生成图像时无需联网
  • 图像转图像(也被称为 Image2Image)
  • 在图像的 EXIF 信息中存储所有的关键词(在访达的“显示简介”窗口中查看)
  • 使用 RealESRGAN 放大生成的图像
  • 自动保存 & 恢复图像
  • 自定义 Stable Diffusion Core ML 模型
  • 无需担心损坏的模型
  • 使用 macOS 原生框架 SwiftUI 开发

下载

发行 页面下载最新版本。

运行

在初次运行模型时, 神经网络引擎可能需要约2分钟编译缓存,后续运行速度会显著提高。

计算单元

  • CPU 和神经网络引擎 能很好地平衡性能和内存占用
  • CPU 和 GPU 在 M1 Max/Ultra 及后续型号上可能更快,但会占用更多内存

你需要根据不同的计算单元选择对应的模型 (详情见模型部分)。

搭载 Intel 芯片的 Mac 只能使用 CPU 和 GPU,因其没有配备神经网络引擎。

模型

你需要自行转换或下载 Core ML 模型以使用 Mochi Diffusion。

这里 上传了几个已经转换好的模型

  1. 转换 或下载 Core ML 模型
    • split_einsum 版本适用于包括神经网络引擎在内的所有计算单元
    • original 版本仅适用于 CPU 和 GPU
  2. 本应用默认在 文稿 中创建一个模型文件夹,但你可以在应用设置中自定义其路径。
  3. 在模型文件夹中,你可以新建一个文件夹,用自己想在应用内显示的名字为其重命名,再将转换好的模型放到文件夹中
  4. 你的文件夹路径应该像这样:

文稿/
└── MochiDiffusion/
    └── models/
        ├── stable-diffusion-2-1_split-einsum_compiled/
        │   ├── merges.txt
        │   ├── TextEncoder.mlmodelc
        │   ├── Unet.mlmodelc
        │   ├── VAEDecoder.mlmodelc
        │   ├── VAEEncoder.mlmodelc
        │   └── vocab.json
        ├── ...
        └── ...

兼容性

  • Apple 芯片的 Mac (M1 及后续) 或 Intel 芯片的 Mac (需要高性能 CPU 和 GPU)
  • macOS Ventura 13.1 以上
  • Xcode 14.2 (自行构建)

隐私

所有计算均在本地完成并绝对不会上传任何数据。

贡献

无论是修复 bug,新增代码,还是完善翻译,Mochi Diffusion 欢迎你的贡献。

致谢

 

标签:工具分享, ChatGPT