-
watchdog.sh按step字段判断denoise是否卡死,但没考虑到step到达total_steps(采样跑完)后 还有VAE解码+存盘这段没有独立进度信号的尾巴,step会停在最终值不变。这段被并入denoise 阶段的10分钟宽限,实测至少一个1344×768长帧数案例这个阶段本身就超过608秒,被误判卡死、 自动整机重启,打断了h3-showcase批量重跑中5个正在跑/排队的任务。修复:给这个阶段单独 一档30分钟宽限(STALL_LIMIT_POSTPROC)。已部署重启watchdog,被打断的5个任务已重新提交 (新任务ID同步进h3-showcase-cases.md)。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
-
/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>
-
排查用户重跑的ref2va任务(1344×768×362帧×3参考图)时发现同一配置当天5次提交4次失败, 查到已有的分辨率/帧数安全上限sweep表全部是0参考图(partition:text)测出来的,从没验证过 带参考图时是否成立。这次任务的真实失败根因是FSDP初始化阶段GPU2/GPU3 OOM(不是一直以来 "GPU0先炸"的老结论),证实带参考图的conditioning张量广播到每个FSDP rank后显存开销明显 更高。写进 raylight/README.md 已知限制第1条、raylight/notes.md、CHANGELOG.md。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
-
排队/取消:新增 cancelled 状态区分"排队未跑就被取消"和"运行中被打断";运行中任务现在能点 "停止"——实测确认 ComfyUI 的 /interrupt 打断不了 Raylight 的 Ray 子进程(打断前后 GPU 一直 100%利用率),唯一办法是硬重启整个服务,已实测两种场景(初始化阶段/满载采样阶段)都能正确 收回 GPU。 参考视频/音频:GenReq 加 reference_video_urls/reference_audio_urls,用 ComfyUI 核心节点 LoadVideo→GetVideoComponents 接参考视频(自动带上视频自己的音轨),LoadAudio 接独立音频。 console 上传接口按类型分级限流,"多参考图生视频"tab 加对应上传框,task.html 的参考图/视频/ 音频现在都能直接预览播放(不再只显示文件名),不再需要跳出去看。 顺带修复:报错文本截取从头/尾盲截改成直接定位"XxxError: ..."模式,不会再被 traceback 里的 超长张量 dump 淹没掉真正的报错原因;console 自己的 partition 判断补上新字段,跟 raylight 那份 保持一致。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
-
用 Turing 版 SageAttention2 替换 TORCH_MATH 后端,解开了之前反复出现的 832×480×124帧/ 448×256×362帧/1024×576×60帧 OOM;又修复了 asyncio.CancelledError 被 contextlib.suppress (Exception) 漏接导致任务卡死在 running 的根因 bug。基于修复后的完成检测,实测出 4 个分辨率 的真实 CUDA OOM 上限(448×256 是画质上限,非显存上限),写进 server.py 的提交校验和 console 的分辨率/时长下拉联动,超上限请求直接拒绝而不是排队后才失败。详细过程和数据见 CHANGELOG.md 和 raylight/notes.md。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>