You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac端SwiftUI集成CoreML Stable Diffusion模型加载失败求助

解决CoreML Stable Diffusion模型加载失败问题

1. 验证模型的Bundle资源配置

  • 打开Xcode项目的Build Phases,展开Copy Bundle Resources,确认TextEncoder.mlmodelc、UNet.mlmodelc、Decoder.mlmodelc都在列表中
  • 若缺失,点击+按钮,从本地克隆的模型目录中选中对应.mlmodelc文件夹添加,添加时选择Create folder references,保证完整的模型目录结构被打包进App资源

2. 替换强制加载为手动编译逻辑

原代码中try!直接加载模型会忽略编译状态,改用以下代码先检查并编译模型:

func loadCoreMLModel(named modelName: String) throws -> MLModel {
    guard let modelURL = Bundle.main.url(forResource: modelName, withExtension: "mlmodelc") else {
        throw NSError(domain: "ModelNotFound", code: -1, userInfo: [NSLocalizedDescriptionKey: "模型文件不存在"])
    }
    
    // 检查模型是否已编译,未编译则手动编译
    if !MLModel.modelIsCompiled(at: modelURL) {
        let compiledURL = try MLModel.compileModel(at: modelURL)
        return try MLModel(contentsOf: compiledURL)
    }
    
    return try MLModel(contentsOf: modelURL)
}

// 在generateImage函数中调用
do {
    let textEncoder = try loadCoreMLModel(named: "TextEncoder")
    // 后续生成逻辑
} catch {
    print("模型加载失败:\(error.localizedDescription)")
}

3. 清理缓存并重建项目

  • 执行Shift+Command+K清理Build Folder
  • 删除项目对应的DerivedData目录:前往~/Library/Developer/Xcode/DerivedData/,删除ArtSenseiPro-abnumyedexjximglshwxziyuddrp文件夹
  • 重新构建并运行项目

4. 确保模型文件完整

HuggingFace上的CoreML模型使用Git LFS存储,直接克隆可能只获取占位符:

  1. 安装Git LFS:brew install git-lfs(未安装时执行)
  2. 进入克隆的模型目录,执行git lfs pull拉取完整模型文件
  3. 检查TextEncoder.mlmodelc目录内是否有实际的二进制模型文件,而非空目录或占位符

5. 适配Apple Silicon架构

  • 在项目Build Settings中,将Architectures设置为Standard Architectures (Apple Silicon, Intel) - $(ARCHS_STANDARD)
  • 关闭Build Active Architecture Only(Debug模式可临时开启,Release模式必须关闭)

内容的提问来源于stack exchange,提问作者Anon.eth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:00:04