[bug]: Interrupted model download restarts from the beginning for download retry option

在 InvokeAI 中下载较大的 Hugging Face 模型时,如果网络中断导致 IncompleteRead / ChunkedEncodingError ,旧版本点 Retry 会丢弃已下载的 8.1GB 临时文件并从 0 开始重下。该问题已由 PR #9591 修复,修复后下载中断会保留

快速结论:在 InvokeAI 中下载较大的 Hugging Face 模型时,如果网络中断导致 IncompleteRead / ChunkedEncodingError,旧版本点 Retry 会丢弃已下载的 8.1GB 临时文件并从 0 开始重下。该问题已由 PR #9591 修复,修复后下载中断会保留数据并显示 Resume 续传。

适用环境:Issue 已确认环境为 InvokeAI v7.0.0-a2、手动安装、Windows、Nvidia CUDA、RTX 5090 24GB、Edge 浏览器、Python 3.12(由日志中的 cpython-3.12-windows-x86_64-none 路径可见)。问题针对 Hugging Face 单文件下载,如 MiniMax-H3 Int8 Text Encoder(约 27GB 的 .safetensors)。

最快修复方案:升级到包含 PR #9591 的 v7 预发布版本(该修复在 7.0.0-alpha.3 之后合入 main)。Issue 未给出具体版本号,请以官方发布说明为准,不要盲目猜测版本标签。

注意事项:修复只针对“瞬时网络错误”导致的安装失败:下载会暂停并保留已下载数据,界面提供 Resume。若失败原因不是瞬时网络错误,或存储/权限/磁盘空间异常,不保证能续传;旧版本中已被清理的临时文件无法找回。

问题场景

在 InvokeAI 模型管理器中下载大型 Hugging Face 模型(例如 MiniMax-H3 的 Int8 Text Encoder),下载进行到约 8.1GB 时网络中断,安装队列报错。用户点击重试(Retry)后,InvokeAI 没有从断点继续,而是删除临时下载文件并从头重新下载整个模型。

报错原文

urllib3.exceptions.IncompleteRead: IncompleteRead(8150818390 bytes read, 18990523762 more expected)

urllib3.exceptions.ProtocolError: ('Connection broken: IncompleteRead(8150818390 bytes read, 18990523762 more expected)', ...)

requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(8150818390 bytes read, 18990523762 more expected)', ...)

[DownloadQueueService]::ERROR --> Cancelling ...\invokeai\tmpinstall_... due to an error while downloading ...
[ModelInstallService]::ERROR --> Model install error: Comfy-Org/MiniMax-H3::text_encoders/qwen3vl_32b_minimax_h3_int8_convrot.safetensors

原因分析

从日志看,下载流在读取过程中连接被断开,urllib3 抛出 IncompleteRead,Requests 将其包装为 ChunkedEncodingError。InvokeAI 的下载服务捕获到该异常后取消当前下载,将 tmpinstall_* 临时文件视为失败产物处理。旧版本的 Retry 逻辑没有区分“可恢复的瞬时网络错误”和“不可恢复错误”,因此点击重试时没有使用已有字节数继续请求,而是重新创建下载任务、从头开始。这是 Issue 中确认的行为缺陷,不是用户网络配置本身造成的。

环境排查

  • 确认 InvokeAI 版本:v7.0.0-a2 存在此问题;修复位于 7.0.0-alpha.3 之后合入 main 的 PR #9591。
  • 确认失败模型是否为 Hugging Face 单文件下载(.safetensors 等),Issue 明确该修复覆盖此类下载。
  • 确认安装队列中的错误类型是否为 IncompleteRead / ChunkedEncodingError 等瞬时网络错误。
  • 检查下载目录所在磁盘是否有足够剩余空间;Issue 显示临时文件位于 D:\ModelSpace\invokeai\tmpinstall_*。
  • Windows、RTX 5090、CUDA、Python 3.12 均来自报障环境,不需要为复现问题降级这些组件。

解决步骤

  1. 将 InvokeAI 升级到包含 PR #9591 的 v7 预发布版本。Issue 明确说明修复在 7.0.0-alpha.3 合入 main 之后,随下一个 v7 预发布版本发布;具体版本号请查看官方 Release 说明。
  2. 升级后重新发起模型下载。若网络再次中断并出现瞬时错误,安装队列应显示失败原因,并保留已下载数据。
  3. 在安装队列中点击 Resume,而不是重新创建下载任务。修复后的行为是从上次中断处继续下载,而非从 0 开始。
  4. 如果当前仍在使用 v7.0.0-a2 且暂时无法升级,暂无确认的一步修复方案。可优先尝试在网络稳定时一次性完成下载;但 Issue 没有验证旧版本可通过手工保留临时文件实现续传,不建议将其当作确定方案。

验证方法

升级后下载同一模型,观察安装队列:网络中断时应出现保留已下载数据的暂停状态,并显示 Resume 按钮;点击后日志中的读取字节数应从断点继续增长,而不是回到 0。最终模型安装完成、队列无 ChunkedEncodingError 残留即可视为问题已解决。

参考来源

invoke-ai/InvokeAI #9841

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 31236

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注