-
/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
-
任务 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
-
/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>