【笔记】ComfyUI “OSError: [WinError 38] 已到文件结尾” 报错解决方案

ComfyUI "OSError: [WinError 38] 已到文件结尾" 报错解决方案

ComfyUI version: v0.6.0

错误现象

运行过程中(通常在预览视频、音频或大图时)控制台报错:

Traceback (most recent call last):

File "H:\PythonProjects1\Win_ComfyUI.venv\Lib\site-packages\aiohttp\web_protocol.py", line 602, in start

resp, reset = await task

^^^^^^^^^^

File "H:\PythonProjects1\Win_ComfyUI.venv\Lib\site-packages\aiohttp\web_protocol.py", line 535, in _handle_request

resp, reset = await self.finish_response(request, resp, start_time)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "H:\PythonProjects1\Win_ComfyUI.venv\Lib\site-packages\aiohttp\web_protocol.py", line 713, in finish_response

await prepare_meth(request)

File "H:\PythonProjects1\Win_ComfyUI.venv\Lib\site-packages\aiohttp\web_fileresponse.py", line 288, in prepare

return await self._prepare_open_file(request, fobj, st, file_encoding)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "H:\PythonProjects1\Win_ComfyUI.venv\Lib\site-packages\aiohttp\web_fileresponse.py", line 418, in _prepare_open_file

return await self._sendfile(request, fobj, offset, count)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "H:\PythonProjects1\Win_ComfyUI.venv\Lib\site-packages\aiohttp\web_fileresponse.py", line 147, in _sendfile

await loop.sendfile(transport, fobj, offset, count)

File "D:\A\envs\py312\Lib\asyncio\base_events.py", line 1232, in sendfile

return await self._sendfile_native(transport, file,

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "D:\A\envs\py312\Lib\asyncio\proactor_events.py", line 768, in _sendfile_native

return await self.sock_sendfile(transp._sock, file, offset, count,

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "D:\A\envs\py312\Lib\asyncio\base_events.py", line 919, in sock_sendfile

return await self._sock_sendfile_native(sock, file,

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "D:\A\envs\py312\Lib\asyncio\proactor_events.py", line 756, in _sock_sendfile_native

await self._proactor.sendfile(sock, file, offset, blocksize)

File "D:\A\envs\py312\Lib\asyncio\windows_events.py", line 803, in _poll

value = callback(transferred, key, ov)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "D:\A\envs\py312\Lib\asyncio\windows_events.py", line 462, in finish_socket_func

return ov.getresult()

^^^^^^^^^^^^^^
OSError: [WinError 38] 已到文件结尾。

关键报错信息:

复制代码
**OSError: [WinError 38] 已到文件结尾。**

Traceback 指向 aiohttp 的 sendfile 调用链(web_fileresponse.py → proactor_events.py)。

错误本质

Windows 系统下 asyncio 的 sendfile 在发送静态文件(output 中的 mp4、wav、长图等)时出现问题:

  • 文件刚生成完,句柄尚未完全释放。
  • 文件被杀毒软件/云盘同步工具短暂锁定。
  • 大文件或低内存环境下 Windows proactor 实现不稳定。

重要:该错误仅影响浏览器实时预览,图片/视频/音频文件本身生成正常(output 文件夹里完整可用)。

解决方案(按推荐顺序)

  1. 最简单:直接忽略

    生成结果不受影响,手动去 ComfyUI\output 文件夹查看文件即可。很多用户长期如此使用。

  2. 避免触发

    • 使用 VHS_VideoCombine 等节点时,勾选 "skip video/audio preview" 或不连接预览节点。
    • 生成后手动刷新 output 文件夹。
  3. 排除外部干扰

    • 将 ComfyUI 整个文件夹(尤其是 output 子文件夹)加入杀毒软件(360、火绒、Windows Defender)白名单。
    • 暂停 OneDrive、百度网盘、Dropbox 等对 output 文件夹的实时同步/扫描。
  4. 禁用 sendfile(推荐永久修复)

    设置环境变量 AIOHTTP_NOSENDFILE=1,强制 aiohttp 使用普通 read/write 发送文件(速度略慢,几乎无感知)。

    永久设置方法(一次设置,长期有效)

    • 打开命令提示符(建议管理员权限):

      复制代码
      setx AIOHTTP_NOSENDFILE "1"

      (普通用户级,推荐)

      复制代码
      setx AIOHTTP_NOSENDFILE "1" /M

      (系统级,需要管理员权限)

    • 设置成功后提示 SUCCESS: Specified value was saved.

    • 必须完全关闭并重启

      • 关闭所有 cmd/PowerShell 窗口
      • 完全退出 PyCharm(包括托盘)
      • 重新启动 ComfyUI
    • 验证:

      复制代码
      echo %AIOHTTP_NOSENDFILE%

      输出应为 1

    临时设置方法(测试用):

    • 在启动 bat 文件最上方添加:

      复制代码
      set AIOHTTP_NOSENDFILE=1
    • 或 PyCharm Run Configuration → Environment variables 添加该变量。

  1. 更新 ComfyUI
    最新版(2025 年以后)已对 WinError 38 增加容错处理。
    • 运行 update.bat 或 Manager 中 Update ComfyUI。

推荐最终配置

  • 执行一次 setx AIOHTTP_NOSENDFILE "1"
  • 重启 PyCharm/ComfyUI
  • 清理 bat 文件和 Run Configuration 中重复的环境变量设置

设置完成后,视频/音频/大图预览将不再报 [WinError 38],体验最流畅。

记下来,下次遇到直接 setx 一次搞定!祝使用愉快~

相关推荐
咕噜企业分发小米2 小时前
腾讯云向量数据库HNSW索引如何更新?
人工智能·算法·腾讯云
AI即插即用2 小时前
即插即用系列 | TGRS 2025 MGAM:面向遥感微小目标检测的多尺度高斯注意力机制
图像处理·人工智能·深度学习·目标检测·计算机视觉·视觉检测
lcreek2 小时前
LeetCode215. 数组中的第K个最大元素、LeetCode912. 排序数组
python·算法·leetcode
cqbzcsq2 小时前
蛋白质功能预测模型DAMPE论文阅读报告
论文阅读·人工智能·python·深度学习·生物信息学
转转技术团队2 小时前
回收团队基于Cursor集成MCP的智能代码修复提示词生成实践
人工智能·python·程序员
石头dhf2 小时前
大模型配置
开发语言·python
南科1号2 小时前
Tushare数据来源分析一例
python
质变科技AI就绪数据云2 小时前
AI Data独角兽猎手的12个预测(2026)
人工智能·向量数据库·ai agent
互联网志2 小时前
交通运输行业作为人工智能落地领域,是一个庞大的人工智能应用场景
人工智能·百度