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

在Vercel部署含PyTorch模型的Flask应用出现ERR_OUT_OF_RANGE错误怎么办?

解决Vercel部署Flask+ESRGAN应用的ERR_OUT_OF_RANGE错误

可能的原因及解决方案:

  • 请求体大小超过Vercel限制
    Vercel Serverless函数默认限制请求体大小在4.5MB左右,你的图像文件如果超过这个值就会触发ERR_OUT_OF_RANGE: data is too long错误。

    • 先尝试用小尺寸图像测试,确认是否是大小问题;
    • 在vercel.json中为Python函数添加bodySizeLimit配置,增大允许的请求体上限(最大不超过50MB),示例:
      {
        "version": 2,
        "builds": [
          {
            "src": "app.py",
            "use": "@vercel/python",
            "config": {
              "bodySizeLimit": "10mb"
            }
          }
        ],
        "routes": [
          {
            "src": "/(.*)",
            "dest": "app.py"
          }
        ]
      }
      
  • Flask自身未配置大文件支持
    本地运行正常可能是因为没触发Flask的默认大小限制,在你的Flask应用中添加以下配置,明确允许的最大文件大小:

    from flask import Flask
    
    app = Flask(__name__)
    app.config['MAX_CONTENT_LENGTH'] = 10 * 1024 * 1024  # 设置为10MB,和Vercel配置保持一致
    
  • 模型推理的资源限制问题
    ESRGAN处理图像时内存占用较高,Vercel Serverless函数默认内存是1GB,若处理大图像时内存溢出,也可能引发类似错误。

    • 尝试使用轻量化的ESRGAN权重;
    • 对输入图像进行分块处理,减少单次推理的内存占用;
    • 在vercel.json中适当调高函数的内存配置(最大可到10GB),示例:
      {
        "version": 2,
        "builds": [
          {
            "src": "app.py",
            "use": "@vercel/python",
            "config": {
              "memory": 2048, // 2GB内存
              "bodySizeLimit": "10mb"
            }
          }
        ],
        "routes": [
          {
            "src": "/(.*)",
            "dest": "app.py"
          }
        ]
      }
      
  • 检查请求传输方式
    确保前端上传图像时没有额外的编码导致数据体积异常增大,比如避免重复base64编码,直接使用二进制流传输。

内容的提问来源于stack exchange,提问作者Adi_OS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:52:36