Mac mini运行ComfyUI加载FLUX大模型遭遇MPS后端不支持Float8报错
速览
用户使用Mac mini M4 24GB运行ComfyUI,下载FLUX1模型后在fp16版本因显存不足无法运行;切换到fp8版本后执行报错,错误信息显示MPS后端不支持Float8_e4m3fn数据类型。该问题涉及ComfyUI在Apple Silicon上的PyTorch MPS后端兼容性,目前社区解决方案可能包括等待官方支持、手动转换权重或使用CPU回退。
AI 深度解读
背景
随着开源图像生成大模型 FLUX.1 的发布,许多 Mac 用户也尝试在本地部署 ComfyUI 进行推理。然而,FLUX.1 模型权重较大(fp16 版本超过 20GB),对显存和推理框架的兼容性要求较高。macOS 的 MPS(Metal Performance Shaders)后端对某些数据类型的支持有限,导致用户在 Mac mini M4(24GB 统一内存)上运行时遇到困难。该帖子来自 LINUX DO 社区的 AI 板块,用户寻求帮助解决 fp8 模型在 MPS 后端报错的问题。
核心内容
用户拥有 Mac mini M4 芯片、24GB 统一内存,希望在本地使用 ComfyUI 运行 FLUX.1 大模型。他从魔搭(ModelScope)和 LiblibAI 下载了 FLUX.1 的模型文件,其中 fp16 精度版本(20 多个 GB)虽然无法正常推理(跑不动),但运行时没有报错;而换成 fp8 精度版本(约 11GB)后,ComfyUI 执行时直接抛出错误。用户尝试向 Gemini(Google 的 AI 助手)寻求调整建议,但未能解决问题。
错误的核心是:
TypeError: Trying to convert Float8_e4m3fn to the MPS backend but it does not have support for that dtype.
完整 traceback 显示错误发生在 ComfyUI 的采样执行过程中,最终在调用 MPS 后端时因不支持 Float8_e4m3fn 数据类型而中断。具体路径如下:
- 报错始于
execution.py中的样本采样流程。 - 经过
ksampler、sample函数、samplers.py中的inner_sample等步骤。 - 最终在
k_diffusion/sampling.py的sample_euler中被触发,模型内部尝试将 fp8 张量转换到 MPS 设备时失败。
这意味着 macOS 的 PyTorch MPS 后端尚未实现对 Float8_e4m3fn 数据类型的支持,而 fp8 版本的 FLUX.1 模型正是以该格式存储权重,导致模型加载后无法在 MPS 设备上执行前向推理。
用户的核心诉求是:如何在 Mac mini M4 上成功运行 fp8 版本的 FLUX.1 模型?
关键要点
- 硬件与平台:Mac mini M4,24GB 统一内存,使用 ComfyUI(原生 Mac 应用,路径
/Applications/ComfyUI.app),PyTorch 的 MPS 后端。 - 模型版本问题:fp16 版本(>20GB)虽不报错但跑不动(可能因显存不足或推理速度极慢);fp8 版本(约 11GB)可加载但因数据类型不支持而报错。
- 错误根源:
Float8_e4m3fn是 fp8 的一种常见格式(4 位指数、3 位尾数、符号位),MPS 后端目前不支持该 dtype,因此无法将张量从 CPU 迁移到 MPS 设备。 - 用户尝试:已向 Gemini 寻求建议,但未成功;未提及尝试过其他解决方案(如强制使用 CPU 推理或转换模型精度)。
- 潜在解决方案方向(原文未提及,但可推断):
- 在 ComfyUI 或 PyTorch 中强制模型在 CPU 上运行(速度极慢)。
- 将模型转换为 MPS 支持的精度(如 fp16 或 bf16)。
- 使用基于 CoreML 的转化工具(如
apple/ml-flux或coremltools)进行适配。 - 等待 PyTorch MPS 后端更新以支持 fp8。
意义与影响
该问题反映了当前 Mac 用户在运行新型大模型时面临的普遍兼容性挑战。FLUX.1 作为开源图像生成模型,其 fp8 量化设计旨在降低内存占用,但 macOS 的 AI 推理生态(MPS 后端)发展滞后于主流 CUDA/NVIDIA 平台,导致用户无法直接利用量化优势。这一案例凸显了以下要点:
- 生态碎片化:即便模型权重通过标准 PyTorch 保存,不同硬件后端的 dtype 支持度差异巨大,Mac 用户常被迫使用低效的 fp16 或 CPU 推理。
- 社区互助的价值:LINUX DO 等论坛成为技术求助的关键渠道,但需要更系统性的解决方案(如社区维护的 Mac 兼容模型仓库或转换脚本)。
- 对开发者的启示:模型量化时应考虑跨平台兼容性,或提供针对 MPS 的适配版本;PyTorch 团队需加速 MPS 后端对新型数据类型的支持。
- 现实选择:对于急于在 Mac 上使用 FLUX.1 的用户,可能需要放弃 fp8 量化,转而使用通过 CoreML 转换的专门优化版模型,或依赖云 GPU 服务。
该问题短期内仍无完美解法,但随 Apple 持续改进 Metal 性能与 PyTorch MPS 后端,未来有望原生支持 fp8 推理。
