• /v1/models 之前硬编码3个预设,模型文件名对应的是已删除的 api.py/gateway.py 那套旧
    架构(minimax-h3-fl2va-nf4.safetensors 等),跟 raylight 现在实际加载的模型
    (minimax_h3_fl2va_pruned_int8_convrot.safetensors 等)完全对不上,档位也只有3个,
    跟前端下拉框实际支持的8个分辨率(RESOLUTION_CEILINGS)不一致——外部调这个接口查
    "支持哪几档"拿到的是错的过期数据。
    
    raylight/server.py 加 GET /v1/resolutions,返回 RESOLUTION_CEILINGS 的实时内容;
    h3-console 的 /v1/models 改成实时调这个接口拼 presets,顺带把 partitions 里的模型
    文件名也换成当前实际使用的。
    
    已在服务器上重启验证:/v1/resolutions 返回全部8档,h3-console /v1/models 端到端
    拿到一致数据;重启过程中17条排队任务全部保留(用到了上一次改的排队恢复逻辑)。
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01PA1AWh8e7wJ3vyhKBAEQux
    yibo authored
     
    Browse File »
  • 任务 f2de718e1e30(参考视频文件名带中文)秒失败:h3-console 上传时的文件名清洗用了
    Python 3 默认的 Unicode \w,中文被当合法字符保留,资源 URL 里带着原始中文传给
    urllib.request.urlopen,http.client 构造请求行要求纯 ASCII 直接炸了。改成请求前对
    URL 的 path 部分 quote 一遍。
    
    排查时发现 raylight 重启会把所有排队中的任务直接标记 cancelled(内存队列重启即清空,
    sqlite 里的 queued 记录没有任何路径被重新入队)。改成 Job 加 queue_seq、Q 换成
    PriorityQueue,重启时排队任务原样保留、按序重新入队;顺带加了 POST
    /v1/videos/{jid}/prioritize 插队接口和对应的 h3-console 代理 + 前端"优先插队"按钮。
    
    另外把 8月24日提交过、但实际从未部署到服务器的 ComfyUI 存活探测(_comfyui_alive)
    重新加回,并解决了 raylight/server.py 和 raylight/scripts/server.py 长期分叉的问题。
    
    已在服务器上验证:重启后 17 条排队任务原样保留、顺序不变;插队接口直接测试和通过
    console 代理都验证通过;/health 的 comfy_alive 检查确认生效。
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01PA1AWh8e7wJ3vyhKBAEQux
    yibo authored
     
    Browse File »

  • /health 之前只读 STATE["model"](worker()线程启动时设一次"ready",之后再不更新),
    一次OOM把ComfyUI(8188)进程本身搞崩溃退出后,server.py这层壳没死,/health继续骗人报
    ready近20分钟,期间提交的任务全部秒失败(ConnectError)才被人工发现。改成每次/health都
    真的探测一次8188(GET /system_stats,2秒超时,跟start.sh自己的就绪检测用同一个端点)。
    不解决actor崩溃不自愈本身(上游代码问题),只是让崩溃能被更快发现。
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    yibo authored
     
    Browse File »