m4 mac mini本地部署ComfyUI,测试Flux-dev-GGUF的workflow模型10步出图,测试AI绘图性能,基于MPS(fp16),优点是能耗小和静音

m4 mac mini已经发布了一段时间,针对这个产品,更多的是关于性价比的讨论,如果抛开各种补贴不论,价位上和以前发布的mini其实差别不大,真要论性价比,各种windows系统的mini主机的价格其实是吊打苹果的。
本次我们针对m4 mac mini的AI性能做个测试,使用目前泛用性最广的AI工作流软件:ComfyUI框架,基于MPS(fp16)模式进行测试。
Mac Os 本地部署ComfyUI
首先确保本机已经安装好了基于arm架构的Python3.11,之所以使用Python3.11,是因为这个版本性能有一定的优化,又不会像最新的3.13由于版本过新,引发依赖装不上的问题。
Mac版本Python3.11安装包的下载地址:
https://python.org
随后克隆官方项目:
git clone https://github.com/comfyanonymous/ComfyUI.git
接着安装 MPS 版本的 torch
pip3 install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
然后安装依赖:
pip3 install -r requirements.txt
依赖安装完毕后,需要升级一下SSL证书:
bash /Applications/Python*/Install\ Certificates.command
接着安装 ComfyUI 的 Manager 项目,用来安装各种节点:
cd custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
至此ComfyUI项目就部署好了。
Flux-dev-GGUF模型下载
下载需要的flux-dev模型,由于官方的模型体积太大(23G),这里我们下载GGUF的量化版本:
https://pan.quark.cn/s/2907b57697fe
模型名称分别是:flux1-dev-Q4_1.gguf和t5-v1_1-xxl-encoder-Q5_K_M.gguf,将其分别放到models的UNET目录和clip目录。
随后,回到项目的根目录,输入命令,启动ComfyUI服务:
python3 main.py --force-fp16
这里强制使用fp16精度用来提升性能。
程序返回:
liuyue@mini ComfyUI % python3 main.py --force-fp16
[START] Security scan
[DONE] Security scan
## ComfyUI-Manager: installing dependencies done.
** ComfyUI startup time: 2024-12-08 23:04:08.464703
** Platform: Darwin
** Python version: 3.11.9 (v3.11.9:de54cf5be3, Apr 2 2024, 07:12:50) [Clang 13.0.0 (clang-1300.0.29.30)]
** Python executable: /Library/Frameworks/Python.framework/Versions/3.11/bin/python3
** ComfyUI Path: /Volumes/ssd/work/ComfyUI
** Log path: /Volumes/ssd/work/ComfyUI/comfyui.log
Prestartup times for custom nodes:
0.7 seconds: /Volumes/ssd/work/ComfyUI/custom_nodes/ComfyUI-Manager
Total VRAM 24576 MB, total RAM 24576 MB
pytorch version: 2.5.1
Forcing FP16.
Set vram state to: SHARED
Device: mps
Using sub quadratic optimization for cross attention, if you have memory or speed issues try using: --use-split-cross-attention
[Prompt Server] web root: /Volumes/ssd/work/ComfyUI/web
### Loading: ComfyUI-Manager (V2.51.9)
### ComfyUI Revision: 2859 [b4526d3f] | Released on '2024-11-24'
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/alter-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/model-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/github-stats.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json
Torch version 2.5.1 has not been tested with coremltools. You may run into unexpected errors. Torch 2.4.0 is the most recent version that has been tested.
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/extension-node-map.json
Import times for custom nodes:
0.0 seconds: /Volumes/ssd/work/ComfyUI/custom_nodes/websocket_image_save.py
0.0 seconds: /Volumes/ssd/work/ComfyUI/custom_nodes/ComfyUI-GGUF
0.1 seconds: /Volumes/ssd/work/ComfyUI/custom_nodes/ComfyUI-Manager
2.2 seconds: /Volumes/ssd/work/ComfyUI/custom_nodes/ComfyUI-MLX
Starting server
To see the GUI go to: http://127.0.0.1:8188
代表部署成功,访问:http://127.0.0.1:8188

测试Flux-dev-GGUF工作流
下载基于GGUF的工作流:
https://promptingpixels.com/flux-gguf/
导入工作流后,输入提示词:
a super sexy gal holding a sign that says "ComfyUI Mac"
意思是性感女子举着一个牌子,上面写着 ComfyUI Mac
此时,可以直接执行工作流,程序返回:
ggml_sd_loader:
13 144
0 50
14 25
Requested to load FluxClipModel_
Loading 1 new model
loaded completely 0.0 323.94775390625 True
Requested to load FluxClipModel_
Loading 1 new model
ggml_sd_loader:
1 476
3 304
model weight dtype torch.bfloat16, manual cast: None
model_type FLUX
Requested to load Flux
Loading 1 new model
loaded completely 0.0 7181.8848876953125 True
20%|██████████████████▌ | 2/10 [01:04<04:18, 32.27s/it]
每秒的迭代稳定在30次左右,一张图大概需要3-5分钟左右。
笔者的 m4 mac mini 的配置是丐版升级到24G内存,在出图的过程中,通过活动监视器可知,内存没有被占满:

可以看到,只使用了21G的内存,有网友使用纯丐版16G内存的mini进行测试,16g内存实际刨除系统占用,空闲最多也就10g,超出的部分只能跑SSD的虚拟内存,导致GPU跑不满,所以丐版16G内存是有可能导致出图的效率降低。
最后是10步迭代的出图效果:

可以看到,精度没有下降太多,主要问题还是出图速度太慢。
结语
m4 mac mini的AI生态还有很大的提升空间,建议AI从业者慎重购买,如果一定要买,也需要避开16G内存的版本,因为如果模型体积过大,16G内存中真正能使用的其实只有10G内存,有可能会导致模型推理效率降低,当然,我们也不能忽视m4 mac mini推理模型的优点,那就是能耗小相对省电,并且使用时的声音很小,不像N卡设备动不动就山呼海啸。
m4 mac mini本地部署ComfyUI,测试Flux-dev-GGUF的workflow模型10步出图,测试AI绘图性能,基于MPS(fp16),优点是能耗小和静音的更多相关文章
- Mac mini M1使用简单体验(编程、游戏、深度学习)
好久不见了各位! 前一阵子忍不住剁手买了M1芯片的mac mini,为了弥补自己的内疚感就卖了自己的旧的mbp2017款.数据也完全迁移到了新机器上,之前的工作也就由mbp2017彻底换成mac mi ...
- 本地部署arcgis by eclipse
首次来博客园发帖,从本地部署arcgis api开始吧: 首先还是下载arcgis的api包开始,在中国区官网下载arcgis包: 1.http://support.esrichina.com.cn/ ...
- ArcGIS server开发之API for js 本地部署
ArcGIS Server for javascript 本地部署 第一次使用arcgis server for js开发,在经验方面还有很多的不足,所以将自己在开发过程中遇到的问题写出来与大家共享. ...
- 在Mac mini上安装 ESXi 5.5
Mac mini 是 mid 2011 版本的, 安装原版ESXi 5.5 update 1 非常顺利, 没遇到任何问题. 提示: 1. 安装会初始化整个硬盘, 有数据要先备份 2. ESXi只使用有 ...
- Exceptionless 本地部署
免费开源分布式系统日志收集框架 Exceptionless 前两天看到了这篇文章,亲身体会了下,确实不错,按照官方的文档试了试本地部署,折腾一番后终于成功,记下心得在此,不敢独享. 本地部署官方wik ...
- ArcGIS API for JavaScript 4.x 本地部署之Apache(含Apache官方下载方法)
IIS.Nginx都说了,老牌的Apache和Tomcat也得说一说(如果喜欢用XAMPP另算) 本篇先说Apache. 安装Apache 这个...说实话,比Nginx难找,Apache最近的版本都 ...
- ArcGIS API for JavaScript 4.x 本地部署之Nginx法
上篇ArcGIS API for JavaScript 4.x 离线配置之IIS法提到,如何用IIS配置ArcGIS jsAPI: 本篇则使用http下的Nginx配置,其原理基本一致.https的部 ...
- 异常日志框架Exceptionless结合.NET Core(本地部署)
一.前言 1.分布式异常日志收集框架Exceptionless是开源的工具,根据官方给出的说明: Exceptionless可以为您的ASP.NET.Web API.WebFrm.WPF.控制台和MV ...
- Windows 之 手机访问 PC 端本地部署的站点
测试网页在手机上的显示工具我们可以使用谷歌内核的浏览器,打开开发者工具(F12),在device那里选择设备,然后刷新来查看网页在手机上的显示效果. 但毕竟是模拟的,如果想要在真机上调试该怎么办呢. ...
- ArcGIS API for JavaScript开发笔记(一)——ArcGIS for Javascript API 3.14本地部署
堪称史上最详细的< ArcGIS forJavascript API 3.14本地部署>文档,有图有真相~~~ ---------环境:Windows server 2012R2,IIS ...
随机推荐
- ASP.NET Core – View Component
前言 以前写过 Asp.net core 学习笔记 ( ViewComponent 组件 ), 这篇作为翻新版. 参考 Docs – View components in ASP.NET Core D ...
- Swift查看变量内存地址
withUnsafePointer 不说话,先放代码 withUnsafeBufferPointer(to: a) { point in let address = UnsafeRawPointer( ...
- T2 的莫反式子
正在实现,不知道对不对,但是先放这,哪个大佬发现问题了和我说下 设 \[f(l)=\sum\cdots\sum[\gcd=1,\text{lcm}=l] \] \[g(l)=\sum\cdots\su ...
- DWC3和XHCI的区别
DWC3(DesignWare USB 3.0 Controller)和XHCI(eXtensible Host Controller Interface)都是与USB控制器相关的技术,但它们的作用和 ...
- mmap映射类型
文件映射和匿名映射都是操作系统中对于内存映射的两种类型,主要应用于进程间的通信或者大量数据的处理. 文件映射,也就是内存映射文件,是把一个文件或者文件的一部分映射到进程的地址空间,它允许对文件进行随机 ...
- OOOPS:零样本实现360度开放全景分割,已开源 | ECCV'24
全景图像捕捉360°的视场(FoV),包含了对场景理解至关重要的全向空间信息.然而,获取足够的训练用密集标注全景图不仅成本高昂,而且在封闭词汇设置下训练模型时也受到应用限制.为了解决这个问题,论文定义 ...
- token有⼀定的失效性,过期了该怎么做?
token 失效分为主动失效和被动失效 主动失效 就是自己设置函数检查token是否失效了, 主要步骤 :1 1.在登录的时候记录存储token的时间, 2. 在request文件,设置一个函数,用来 ...
- 63.CDN优化
虽然CDN引入组件库可以优化项目,减轻服务器负载,但是在真实的项目开发中不推荐使用CDN : 因为: 1. 使用第三方服务器不稳定 2. 需要后端配置 3. 要知道组件库的全局变量名
- 云原生爱好者周刊:Fluentbit Operator 正式成为 Fluent 子项目
云原生一周动态要闻: Fluentbit Operator 正式成为 Fluent 子项目 Kubernetes 1.22 发布 Rust Cloud Native 组织成立 CNCF 宣布 Graf ...
- 东方通信基于 KubeSphere 的云计算落地经验
作者:周峰 吴昌泰 公司简介 东方通信股份有限公司(以下简称"东方通信")创立于 1958 年,是一家集硬件设备.软件.服务为一体的整体解决方案提供商.公司于 1996 年成功改制 ...