快速结论:该报错发生在 Diffusers 0.40.0 的 ModularPipeline 从本地目录加载组件时,因为 modular_model_index.json 文件中保存的是 Hub 仓库 ID(如 MiniMaxAI/MiniMax-H3),加载器会忽略本地目录而尝试从 Hub 重新解析组件路径。优先排查方向是检查 modular_model_index.json 中的 pretrained_model_name_or_path 字段是否指向本地路径,或使用 save_pretrained(overwrite_modular_index=True) 生成自包含目录。
适用环境:Diffusers 0.40.0(main 分支同样受影响)、macOS 26.6.2 arm64、Python 3.14.5、PyTorch 2.14.0.dev20260808(MPS)、huggingface_hub 1.27.0、Transformers 5.14.1、Accelerate 1.14.0、Apple M5 Max 128GB 统一内存。问题涉及 MiniMaxAI/MiniMax-H3 模型(约 134 GB)。
最快修复方案:暂无确认的“一行命令”修复方案。官方建议的自包含目录生成方法是:先通过 ModularPipeline.from_pretrained("MiniMaxAI/MiniMax-H3") + load_components() 加载完整模型,再用 pipe.save_pretrained(local_dir, overwrite_modular_index=True) 保存;在后续更新版本(#14659)中 overwrite 已改为默认开启。
注意事项:官方明确表示当前加载行为是“按设计”的——加载器只依据 modular_model_index.json 中的规范执行,不会猜测用户意图去改写路径。已有本地快照的用户(通过 hf download --local-dir 获取)在重新保存为自包含目录前,仍可能发生一次完整的二次下载。
问题场景
用户在 Diffusers 0.40.0 中通过 ModularPipeline.from_pretrained(local_dir) 或 blocks.init_pipeline(local_dir) 从本地目录加载 MiniMaxAI/MiniMax-H3 转换检查点,随后调用 load_components() 时触发问题。该模型的 modular_model_index.json 中包含九个 "pretrained_model_name_or_path": "MiniMaxAI/MiniMax-H3" 条目,导致加载器忽略本地 snapshot 目录,转而尝试从 Hub 下载完整仓库(约 134 GB)。在离线模式下,组件加载失败并被置为 None。
报错原文
ValueError: Unable to load scheduler using load method: MiniMaxAI/MiniMax-H3 does not appear to have a file named scheduler_config.json.
原因分析
问题根源在 modular_pipeline.py(v0.40.0)中的路径解析不对称逻辑。可能原因包括:
- 当目录中存在
modular_model_index.json时(约第 1749 行),每个组件的 spec 会原样从该文件重建(约第 1755 行),其中记录的 Hub 仓库 ID 优先级高于本地目录路径。 - 当不存在
modular_model_index.json而回退到model_index.json时(约第 1768 行),spec 会被构建为"repo": pretrained_model_name_or_path,即采用本地目录路径——这才是用户期望的行为。 - 官方确认这是“按设计”的行为:加载器根据
modular_model_index.json中的说明加载每个组件,不猜测意图也不改写路径。
环境排查
- 确认 Diffusers 版本是否为 0.40.0 或更早版本;main 分支在修复前同样受影响。
- 检查
modular_model_index.json与model_index.json中所有pretrained_model_name_or_path字段是否指向 Hub 仓库 ID(如 MiniMaxAI/MiniMax-H3)而非本地路径。 - 确认本地 snapshot 是否通过
hf download MiniMaxAI/MiniMax-H3 --local-dir <path>获取(此类快照不自包含)。 - 检查是否处于离线模式(HF_HUB_OFFLINE=1),该模式下会直接报错而非触发下载。
- 核对 huggingface_hub、PyTorch、Transformers、Accelerate 版本与安装环境。
解决步骤
- 方案一(官方推荐,可优先尝试):生成自包含目录。在联网环境下先完整加载模型:
pipe = ModularPipeline.from_pretrained("MiniMaxAI/MiniMax-H3")
pipe.load_components()
然后使用overwrite_modular_index=True保存为自包含目录:
pipe.save_pretrained(local_dir, overwrite_modular_index=True) - 注意:后续版本行为已变更。根据 #14659 的改动,新版中 overwrite 已默认开启,因此在新版本中
save_pretrained()会默认生成自包含目录,无需额外传参。 - 方案二(手动修改索引文件,作为临时 workaround):将本地 snapshot 中
modular_model_index.json和model_index.json内的九个pretrained_model_name_or_path条目全部改为本地路径,然后再执行加载。 - 方案三(适用于已持有本地快照的用户):如果在修复发布前已通过
hf download --local-dir获得快照,并且想要避免二次下载,只能手写修改索引文件,或先临时允许下载完成一次后保存为自包含格式。官方暂无针对已下载快照的“零下载”迁移路径。 - 升级 Diffusers 版本:检查并升级到包含 #14659 修复的版本,以获得默认 overwrite 行为和更完善的文档说明。
验证方法
执行下列任一方式确认问题已解决:
- 在离线模式(HF_HUB_OFFLINE=1)下运行原始复现脚本,检查
pipe.scheduler是否成功加载MiniMaxH3Scheduler而非None。 - 使用
save_pretrained(..., overwrite_modular_index=True)生成自包含目录后,检查新生成的modular_model_index.json,确认其中的pretrained_model_name_or_path已指向本地相对路径而非 Hub ID。 - 在本地目录存在对应
scheduler_config.json且无网络连接的情况下运行加载,不再出现ValueError: Unable to load scheduler...报错。
参考来源
huggingface/diffusers #14640
huggingface/diffusers #14659(overwrite 默认开启的修复)
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


![[Bug/Perf]: hybrid-SWA prefix caching collapses to zero for ALL requests in multi-session round-robin at ~25% pool occupancy (Gemma-4-31B; e](https://www.chat-gpts.plus/wp-content/uploads/2026/09/48435-ed9f024c-768x403.jpg)