Mac本地跑FLUX.2文生图:3步导出coreai-models扩散模型到diffusion-runner完全指南
【免费下载链接】coreai-modelsModel export recipes, Python primitives, and Swift runtime utilities for on-device AI项目地址: https://gitcode.com/gh_mirrors/co/coreai-models
想在 Mac 上本地生成 AI 图片,不用云端、不传隐私数据?coreai-models 正是为此而生:它提供模型导出配方、Python 原语和 Swift 运行时工具,帮你把 FLUX.2 等开源扩散模型导出为 Core AI 格式,直接在 Apple 芯片上跑文生图。本文手把手带新手走完"环境准备 → 模型导出 → 命令行出图"全流程。
coreai-models 是什么?Mac 能跑 FLUX.2 吗?
coreai-models 围绕三块能力构建,详见 README.md:
- 模型导出:把 Hugging Face 上的开源模型转换为 Core AI 的
.aimodel格式 - Python 原语:用 PyTorch 编写自定义 Core AI 模型的构建块
- Swift 运行时:基于 Core AI 框架的运行时工具,含命令行出图工具
diffusion-runner
FLUX.2(Klein 4B,40 亿参数)已在支持列表中,macOS 和 iOS 均可运行,详见 models/flux2/README.md:
| 模型 | 参数量 | macOS | iOS |
|---|---|---|---|
| FLUX.2 Klein 4B | 4B | ✅ | ✅ |
💡 原理上,导出后的模型由多个组件按顺序协作:文本编码 → 噪声生成 → 去噪循环(flow-match Euler)→ VAE 解码出图,整条流水线实现在 FlowTransformerPipeline+Flux2.swift。
环境准备:一键安装检查清单
开始之前,确认你的 Mac 满足以下要求:
| 依赖 | 版本要求 | 用途 |
|---|---|---|
| macOS | 27.0+ | 运行 Core AI 模型 |
| Xcode | 27.0+ | 编译 diffusion-runner |
| uv | 最新版 | 运行 Python 导出脚本 |
安装 uv 只需一条命令:
brew install uv克隆仓库:
git clone https://gitcode.com/gh_mirrors/co/coreai-models cd coreai-models第一步:导出 FLUX.2 到 .aimodel 格式
FLUX.2 的导出由 CLI 工具coreai.diffusion.export完成,源码在 python/src/coreai_models/diffusion/export.py。macOS 平台一条命令即可:
uv run coreai.diffusion.export flux2-klein-4b --platform macOS这条命令背后自动做了几件聪明事(注册表预设见 model_registry.py):
- 分辨率:macOS 默认 1024×1024
- 压缩:默认
4bit权重量化,float16计算精度——体积和质量平衡的最佳起点 - 组件:导出 transformer、text_encoder、vae_decoder、vae_encoder 及半分辨率 VAE,出图与图生图都覆盖
- 输出位置:默认写入仓库根目录的
exports/
导出前先"预演":--dry-run
不确定会导出什么?加个--dry-run只打印解析后的配置,不实际导出:
uv run coreai.diffusion.export flux2-klein-4b --dry-run想换压缩方案?
FLUX.2 支持的压缩预设(none/4bit/4bit-asym/8bit,定义见 presets.py):
# 全精度(不压缩,体积最大、速度最慢) uv run coreai.diffusion.export flux2-klein-4b --compression none⚠️ 注意:VAE 解码器永远不会被量化,保证出图精度。
第二步:理解 Transformer 打包方式(新手必看)
FLUX.2 的 transformer 有两种导出方式,这是新手最容易困惑的地方:
| 对比项 | 默认(多功能打包) | --single-function |
|---|---|---|
| 产物 | 单个Transformer.aimodel,运行时任选分辨率 | 每个分辨率/网格一个资产 |
| 磁盘占用 | 共约 2 GB | 每个约 2 GB |
| 峰值内存 | 较高 | 更低 |
macOS 桌面内存充足,直接用默认方式即可,不需要额外参数。只有 iOS 设备内存紧张时才会强制单函数模式(--platform iOS会自动处理)。
第三步:用 diffusion-runner 命令行出图 🎨
导出完成后,仓库自带 CLI 工具直接出图,源码在 swift/Sources/Tools/diffusion-runner/DiffusionRunnerMain.swift:
swift run -c release diffusion-runner \ --model exports/flux2-klein-4b \ --prompt "a photo of a cat" \ --steps 4 \ --guidance-scale 1.0运行后终端会逐步打印去噪进度(Step 1/4…),完成后默认保存为output.png,并告诉你耗时。首次编译稍慢(release 模式),之后秒级启动。
参数调优速查表
| 参数 | 默认值 | 建议 |
|---|---|---|
--steps | 20 | 4~8 步即可出好图(FLUX.2 已蒸馏加速),追求细节可拉到 20 |
--guidance-scale | 7.5 | 默认即可;配合--guidance-mode manual可增强文字贴合度 |
--seed | 42 | 固定种子可复现同一张图 |
--output | output.png | 自定义输出路径 |
--decode-resolution | full | 内存吃紧时用half或tiled分块解码 |
--input-image | 无 | 传入参考图即可切换为图生图模式 |
💡 工具默认开启
lazyModelLoading:各组件按需加载、用完即卸载,有效压低峰值内存。
顺手体验图生图
swift run -c release diffusion-runner \ --model exports/flux2-klein-4b \ --prompt "a cat wearing a hat" \ --input-image cat.png \ --reference-grid half \ --steps 4 --guidance-scale 1.0--reference-grid控制参考图的细节保留程度:full(1:1,最多 token,最贴合)→half→quarter(最轻量、引导最粗)。
常见问题排查
diffusion-runner报"无法确定 pipeline 类型":说明模型目录缺metadata.json,请用coreai.diffusion.export重新导出- 内存不足:换
--decode-resolution tiled,或导出时选--single-function降低峰值内存 - 出图慢:优先减少
--steps,其次用 4bit 压缩导出 - 想只导出部分组件:如
--components transformer text_encoder,省磁盘空间
结语:从零到出图只需三条命令
回顾一下完整路径:装好 uv 和 Xcode →coreai.diffusion.export一键导出 →diffusion-runner命令行出图。coreai-models 让 FLUX.2 这类大模型不再依赖云端,隐私数据和算力都留在你的 Mac 上。更多扩散模型(如 Sana Sprint)与完整模型目录,可继续查阅 models/README.md。
【免费下载链接】coreai-modelsModel export recipes, Python primitives, and Swift runtime utilities for on-device AI项目地址: https://gitcode.com/gh_mirrors/co/coreai-models
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考