
人工智能AI 应用媒体生成本地部署【免费下载链接】MochiDiffusionRun Stable Diffusion on Mac natively项目地址https://gitcode.com/gh_mirrors/mo/MochiDiffusion点击查看免费下载Mochi Diffusion 是一款在 Mac 上原生运行 Stable Diffusion 与 FLUX.2 Klein 的开源应用见 README.md其 CHANGELOG.md 完整记录了从 2022 年 12 月 v0.1 到 2026 年 9 月 v6.2 的演进历程。本文以该变更日志为骨架结合仓库源码逐层拆解版本背后的技术主线生成引擎的多元化Core ML → Iris、图像元数据的跨工具互操作Musubi 与 AUTOMATIC1111 兼容格式、以及 Swift 6 严格并发下的 actor 化生成队列。读完本文你将理解 Mochi Diffusion 各版本的架构决策、模型目录要求与配置约束的源码依据并能据此判断如何为不同模型准备文件、如何利用其元数据生态。一、版本脉络总览Mochi Diffusion 的版本史可分为三个阶段阶段版本区间技术主题起步期v0.1 – v1.xSwiftUI 界面成形、Core ML 模型加载、基础图库与设置项功能扩张期v2.x – v5.ximg2img、ControlNet、SDXL、SD3、多语言、队列、超分多引擎重构期v6.xFLUX.2 KleinIris 管线、Swift 6 严格并发、元数据互操作最新的 v6.x 系列是当前仓库代码的反映v6.22026-09-29引入了基于 Musubi 的元数据读写体系v6.02026-02-28为 FLUX.2 Klein 模型铺平了道路并重写了生成与图库内部实现。下面从三个核心主题展开。二、v6.2元数据互操作 —— Musubi 库与 AUTOMATIC1111 兼容格式v6.2 的三条变更共同指向一个目标让生成设置元数据在工具间可流通。改用 Musubi 库读写生成设置元数据。Musubi 是 MochiDiffusion 组织维护的元数据库负责把生成参数编码进 PNG/XMP 并解析回来。仓库中 ImageMetadata.swift 是这一能力的实现核心ImageMetadataWriter负责写入ImageMetadataReader负责读取二者都基于 Musubi 的MochiGenerationSnapshot、MochiNativeCodec、MetadataInspector等类型工作。读取并导入常见本地生成工具产出的图片。ImageMetadataReader通过 Musubi 识别三种来源AUTOMATIC1111 兼容工具、ComfyUI、Draw Things。从源码看读取流程先让 Musubi 的MetadataInspector扫描 PNG/JPEG找不到生成记录时再回退到 ImageIO 的 XMP 视图走同一套 Musubi 解码器见 ImageMetadata.swift全程只读元数据、不解码像素。生成设置以 AUTOMATIC1111 兼容文本写入。这意味着把图片上传到 Civitai 时站点能自动填充 prompt、negative prompt、steps、CFG scale、sampler 与 seed不含模型。写入端的关键代码在ImageMetadataWriter.payloads(for:)先经A1111ParametersEncoder生成 AUTOMATIC1111 文本再连同原生 XMP 记录一并写进 PNG见 ImageMetadata.swift。2.1 元数据字段清单Metadata.swift 定义了应用内完整的元数据字段枚举覆盖日期、模型、引擎、模型键、尺寸、质量、起始图、ControlNet 图、输入图、正向/负向提示词、采样器、ML 计算单元、种子、步数、引导尺度与生成器。其中generatorGenerator字段由 ImageMetadataReader.swift 填充为 Mochi Diffusion 及版本号或按来源格式标记为 AUTOMATIC1111-compatible、ComfyUI、Draw Things。2.2 采样器名称的映射协议互操作的关键细节在于采样器命名AUTOMATIC1111 生态里叫DPM 2M与PLMS而 Mochi 内部叫DPM-Solver与PNDM。Scheduler.swift 定义的三个采样器在元数据中按以下规则映射见 ImageMetadata.swiftDPM-Solver二阶、中点法→ 写入DPM 2MPNDMPLMS 步→ 写入PLMSFlow Match Euler Discrete → 无通用名称保留 Mochi 自有名称。反向读取时Scheduler(samplerLabel:)先按 rawValue 匹配再按samplerLabel匹配两者都不中则返回nil—— 此时该图片会被导入为「仅展示、不可还原」的细节项而不是强行套用一个错误采样器见 ImageMetadata.swift。这种「可还原才写入字段、不可还原只作展示」的取舍是整套读取逻辑ImageMetadataReader.apply贯穿始终的设计原则并在 GenerationMetadataTests.swift 中有相应测试覆盖。2.3 对其他格式的容错ImageMetadataWriter.exportPNG(from:)还处理了导出场景PNG 原样复制以保留元数据其他格式转成 PNG 时尽量把可携带的生成记录带过去Draw Things 的 XMP 记录由于没有对应的 PNG 载体转换后不再保留见 ImageMetadata.swift。三、v6.0 / v6.1FLUX.2 Klein 与多参考图支持v6.0 加入了 FLUX.2 Klein4B 与 9B模型支持由 Iris 管线iris.c驱动v6.1 在其上扩展了多输入/参考图能力。这是当前仓库中 Iris 引擎的完整形态。3.1 模型目录要求FLUX.2 Klein 模型无需转换见 README.md但必须满足 diffusers 风格目录结构。源码isIrisFluxKleinModelDirectory逐一校验以下文件存在性见 IrisFluxKleinModel.swiftmodels/flux-klein-4b/ ├── text_encoder/ │ ├── config.json │ └── model.safetensors # 或 model.safetensors.index.json model-*.safetensors ├── tokenizer/ # added_tokens.json / chat_template.jinja / merges.txt 等 ├── transformer/ │ ├── config.json │ └── diffusion_pytorch_model.safetensors └── vae/ ├── config.json └── diffusion_pytorch_model.safetensors权重既接受单个.safetensors也接受带.index.json的分片形式hasSafetensorWeights逻辑见 IrisFluxKleinModel.swift。3.2 固定参数与「忽略项」的源码依据v6.0 明确「步数固定为 4Guidance Scale、Exclude from Image 与 ControlNet 被忽略起始图被当作输入图使用、起始图强度无效」。这些行为在OptionConstraints中一目了然见 IrisFluxKleinModel.swift步数.pinned(family.stepCount)FLUX.2 Klein 蒸馏版固定 4 步Klein Base 为 50Z-Image Turbo 为 9见 IrisFluxKleinModel.swift引导尺度.pinned(family.guidanceScale)蒸馏模型为 1.0即 CFG 公式退化为无引导Klein Base 为 4.0见 IrisFluxKleinModel.swift负向提示supportsNegativePrompt: false—— 流匹配管线不接收负向提示词起始图.unsupported而输入图.supported(maxCount: 4)IrisEngine.maxReferenceImages这正是 v6.1 多参考图能力的约束来源ControlNet.unsupported尺寸自由尺寸64...1792、步进 16潜空间维度须为 16 的倍数。约束的语义定义在 OptionConstraints.swiftIntConstraint/DoubleConstraint区分unsupported不显示、pinned显示为禁用但可见实际生效值、range可编辑三种状态resolved(_:)负责把请求值钳制、吸附到模型可接受的范围。这解释了 v6.1 中「只显示当前选中模型实际使用的生成选项」这一改进 —— 侧边栏的每个控件都直接由约束驱动。3.3 参考图预算与自动缩放v6.1 增加了多参考图功能每张参考图可独立裁剪、预览、重置当大图将被缩放以适配 Iris 的注意力预算时给出警告。背后的机制是attentionHeadCount从transformer/config.json读取num_attention_heads读取失败时回退到默认值 24因为注意力内存随序列长度平方 × 头数增长这使参考图预算成为真实估算而非猜测见 IrisFluxKleinModel.swift。3.4 图库缩略图化与元数据反哺v6.1 还改进了图库从「内存中持有全尺寸图」改为「从缩略图绘制」。对应实现为GalleryController中的GalleryThumbnailProvider见 GalleryController.swift并在路径失效时定向清理缓存GalleryController.swift。同时起始图/输入图被存入元数据图库中有则显示在 InspectorView 中 —— 这与 Metadata.swift 中的startingImage、inputImages字段一一对应读回路径在ImageMetadataReader.apply中实现见 ImageMetadata.swift。v6.1 的其他细节还包括图库图片与排队任务的「复制选项到侧边栏」统一为同一还原路径固定尺寸模型在无匹配横/竖版时交换宽高按钮改为禁用而非移除保持字段间距模态错误/警告横幅替换为弹窗。四、v6.0Swift 6 严格并发与 actor 化生成队列v6.0 另一项基础设施级改动是「为 Swift 6 严格并发重写生成与图库内部将生成移入基于 actor 的队列」。从仓库结构看生成链路被拆成多个职责单一的模块GenerationRequest请求描述含负向提示词、引导尺度、采样器、质量等字段见 GenerationRequest.swift、GenerationController、GenerationSession、GenerationService、GenerationState、JobQueueView队列 UI。这套 actor 队列保证并发生成的资源隔离与可取消性也让「排队生成多张图」在 v6.0 之后成为稳定特性。相关测试如 GenerationSessionTests.swift、QueueLivenessTests.swift 覆盖队列生命周期。同版本移除的能力同样值得注意移除 Convert to High ResolutionRealESRGAN超分v1.4 引入的本地超分能力在 v6.0 被移除引擎聚焦于生成本身移除「不保存到磁盘直接生成」的选项所有生成结果都落盘这与元数据生态图片即记录自洽系统要求升至 macOS 15.6且要求 Apple Silicon。五、模型与功能支持演进时间线CHANGELOG 从 v0.1 到 v5.2 记录了模型生态的逐步扩张这里按能力归并呈现5.1 模型架构演进版本模型能力关键目录/文件要求v0.4自定义 Core ML 模型选择任意已转换模型v3.0img2img起始图模型须含VAEEncoder.mlmodelc尺寸须 512×512v4.0ControlNet旧模型需重新转换以支持 ControlNetv4.2SDXL要求 macOS 14beta 起v4.3SDXL refiner模型须含UnetRefiner.mlmodelcv5.2Stable Diffusion 3模型须含MultiModalDiffusionTransformer.mlmodelc使用 Flow Match Euler Discrete 采样器v6.0FLUX.2 Klein 4B/9Bdiffusers 风格目录transformer/text_encoder/vae/tokenizer从源码看模型类型枚举SDModel.ModelTypesdxl、sd3 等与 Iris 家族枚举IrisModelFamilyIrisFluxKleinModel.swift共同构成引擎能力描述的基础EngineIdentity.swift 与 EngineRegistry.swift 负责引擎注册与识别。5.2 采样器与调度演进v1.4 起提供采样器选择v1.4.2/v1.4.1/v1.3 等版本反复提示「DPM-Solver 采样器在 10–25 步下效果很好」v4.7 起 SDXL 模型的调度 timestep 改为 Karras对应源码stepSpacingDPM-Solver 在 SDXL 上写 Karras、其余写 Linspace见 ImageMetadata.swiftv5.2 SD3 使用 Flow Match Euler Discrete即 Scheduler.swift 的discreteFlowScheduler步数上限经历 40v2.1.4→ 50v2.1.2→ 100v1.4→ 50v2.1.5 回调的调整最终 v4.7 把最小步数放宽到 1。5.3 图像工作流能力ControlNetv4.0 引入v4.1 支持 inpaint须选择 inpainting ControlNet 模型并提供带透明像素的掩膜图v4.1–v4.1.3 均附此提示v4.6 起 ControlNet 列表只显示与当前模型兼容的项并支持自动刷新起始图img2imgv3.0 引入v3.2 改为跟随模型图像尺寸v4.6 支持拖拽设置起始图、并按输出尺寸自动缩放输入图v4.5/v4.1 调整过强度滑块范围图库v2.0 网格化 Quick Look双击预览v2.0.1 支持按提示词搜索v2.1.2 支持按种子搜索v4.1 支持按日期排序v5.2 加入高级过滤字段按 prompt、Exclude from Image、模型、种子、步数、引导尺度过滤对应 Filter.swift 与 FilterTextFieldView.swiftv5.2 还支持右键为图库图片打彩色 emoji Finder 标签导入/导出v2.2 起支持导入须由 Mochi 2.2 生成v3.1 导入改为复制文件v3.0 起支持 HEIC 导入保存v3.1 起支持恢复 JPEG 文件v2.5 起支持自动保存/恢复图片、删除移入废纸篓队列v4.6 加入排队生成v6.0 由 actor 队列重写超分v1.4 引入 RealESRGAN 内置超分v1.4.1 支持批量、v3.2 加动画v6.0 移除。5.4 设置与交互细节计算单元Compute Unitv1.0 提供 CPU GPUv1.1 默认改为 CPU Neural Enginev1.0.6 推荐 8GB 内存 Mac 用 CPU Neural Enginev3.1 增加自动选择v2.1.1 支持换模型时选择。计算单元枚举定义在 ComputeUnitPreference.swift关键词v2.3 起正向/负向提示词带 token 计数v5.1 修正计数以匹配当前选中模型种子v2.0.3 加随机种子按钮v2.1.2 支持按种子搜索图片通知v4.7 增加生成完成通知v4.5 增加剩余时间显示滑块v4.7 支持键盘输入数值v4.7.1 修复使用小数逗号的地区对应 MochiSlider.swift快捷键v1.0.3 增加 ⌘G 生成v4.7 Quick Look 改为空格键v4.4 修复文本输入与图库的快捷键冲突。5.5 国际化与平台CHANGELOG 显示多语言覆盖持续扩展v2.0.1 简体中文/芬兰语/德语/日语/韩语v2.0.2 巴西葡语/法语/意大利语v2.1.1 繁体中文v2.4.1 乌克兰语v4.1.1 挪威语v4.6 匈牙利语v4.3 越南语v5.0 系统要求升至 macOS 14v6.0 新增土耳其语并将系统要求升至 macOS 15.6。仓库中的*.lproj目录如 zh-Hans.lproj/Localizable.strings、ko.lproj/Localizable.strings即为这些翻译的落地文件。六、从 v0.1 到 v6.2历史沉淀的工程决策早期的 v0.x 版本奠定了当代架构的许多基础v0.3 加入自动更新检查v0.4 支持自定义 Core ML 模型与一次生成最多 8 张图v0.6 加入 EXIF 元数据、文件名携带 seed 与 prompt、采样器选择与设置自动保存/恢复v1.2 引入「批次数 × 每批张数」模型每批 seed 递增 1便于复现v1.4 起提示「DPM-Solver 在 10–25 步下表现很好」这一经验后来沉淀为默认 12 步v2.1.2。v2.4「Mochi Ice Cream」是一次典型的「零新功能」重构版本换来性能与稳定性并简化后续功能扩展 —— 与 v6.0 的 Swift 6 并发重构同属「基础设施先行」的路线。七、当前版本的实际使用要点综合 CHANGELOG 与 README.md在最新版v6.2下使用 Mochi Diffusion 的要点如下环境要求Apple Silicon Mac、macOS 15.6从源码构建需 Xcode 26.0签名配置通过SharedXcodeSettings/DeveloperSettings.xcconfig覆盖见 README.md 的 Building From Source 一节。模型准备Core ML 模型放入~/MochiDiffusion/models/下各自命名的子目录含Unet.mlmodelc、VAEDecoder.mlmodelc等FLUX.2 Klein 模型按第三节的 diffusers 目录结构放置无需转换。元数据生态生成图片以 PNG 保存并内嵌 AUTOMATIC1111 兼容文本与 Musubi 原生记录可在 Finder「显示简介」中查看可被 Civitai 等读取同时可导入 ComfyUI、Draw Things、AUTOMATIC1111 兼容工具生成的图片非 Mochi 生成的图片导入图库后其可还原字段会写回侧边栏见 ImageMetadataReader.apply。模型差异感知侧边栏控件由OptionConstraints驱动FLUX.2 Klein 下步数/引导尺度显示为固定值ControlNet 与负向提示词不可用多参考图最多 4 张超出时前部保留、尾部丢弃见 OptionConstraints.swift。结语CHANGELOG 不只是功能清单而是 Mochi Diffusion 技术路线的索引从单一 Core ML Stable Diffusion 引擎到 SDXL/SD3 的逐代支持再到 FLUX.2 Klein 与 Iris 管线的多引擎架构从 EXIF 简单元数据到 Musubi 支撑的跨工具互操作生态从串行生成到 Swift 6 actor 队列。每条变更背后都能在仓库源码中找到对应实现 —— 这正是本文用 Metadata.swift、ImageMetadata.swift、IrisFluxKleinModel.swift、OptionConstraints.swift 等文件交叉印证的原因。对于想深入参与或二次开发的读者建议从这几个文件入手再配合 MochiDiffusionTests 下的测试用例验证行为。赞分享人工智能AI 应用媒体生成本地部署【免费下载链接】MochiDiffusionRun Stable Diffusion on Mac natively项目地址https://gitcode.com/gh_mirrors/mo/MochiDiffusion点击查看免费下载相关推荐Vue CLI 中的 CSS 处理预处理器、PostCSS 与 CSS Modules 完整实战指南Vue CLI 中的 CSS 处理预处理器、PostCSS 与 CSS Modules 完整实战指南 本篇技术指南以 Vue CLI 官方文档《Работа人工智能AI 应用媒体生成本地部署Mochi Diffusion 仓库协作指南深度解读构建、提交、多引擎架构与 6.2 版本规划Mochi Diffusion 仓库协作指南深度解读构建、提交、多引擎架构与 6.2 版本规划 本篇技术指南围绕 Mochi Diffusion 仓库根目录的人工智能AI 应用媒体生成本地部署security-audit-skill 攻击类04密码学与密钥——弱随机、硬编码与 fail-open 回退完整指南security audit skill 攻击类04密码学与密钥——弱随机、硬编码与 fail open 回退完整指南 security audit skil人工智能AI 应用媒体生成本地部署上一篇zhihuhelp终极指南一键将知乎内容转换为个人知识库下一篇GSE魔兽世界宏编辑器终极指南三步打造智能输出循环告别手动按键创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考