ai-chatbot/docs/video-canvas-groups-upscale-2026-09-18.md

4.3 KiB
Raw Blame History

编组和独立视频高清验收 — 2026-09-18

工作分支 codex/video-canvas-parity-0916。本次没有更新主站前端/主项目版本。

编组

  • Shift 点击/框选、Ctrl/⌘+G、新建组、嵌套成员、整体移动、四角调整边框、颜色/名称、网格/横排/竖排、移动到组/移出、解组保留节点和连线。旧预设背景框按几何包含关系迁移一次,后续按明确 parentGroupId 工作。
  • 全部就绪图片/视频可转分镜组,预览、前后镜头、调整顺序;混合工具或未就绪素材时禁用转换。顺序保存在画布中,导出重建 ID。
  • 我的工具箱保存到所属画布,按用户权限跨画布查询;模板 JSON 导入/导出。内部节点和连线重建 ID,运行编号清除;外部媒体依赖转换为必填输入节点,缺素材时整批拒绝。角色/特效外部依赖要求先纳入组内。
  • 整组执行一次性原子入库,客户端持久 outbox 使用同一 runId/requestId 重试;关闭/刷新浏览器后服务端继续执行。按真实连线获取本次上游结果,拒绝循环、错误类型、缺输入、跨批次依赖。上游失败/取消/无可恢复编号的中断会阻断下游,不取旧输出。
  • 支持现有图片/视频/文字分析/音频/图片处理/视频高清任务。智能剪辑遇到本次新视频时拆成隐藏选片阶段 + 成片阶段,依赖新生成素材;保留已确认且输入未变的现有剪辑方案。默认新组合使用顺序剪辑,已有智能参数按保存配置。取消只取消尚未提交的任务。
  • 选中宫格切片需先落成独立图片节点再整组执行,有明确拦截,未用整张原图冒充切片。

视频高清

Real-ESRGAN 独立部署到算力服务器物理 GPU 3(P40)。保留千问 GPU 0/1,GPU 2 不使用。服务与 48→算力私有 API 隧道均启用;48 的 /etc/video-upscale-client.env 已准备,尚未注入/发布主项目版本。部署和约束见 services/video-upscale/README.md。

真实样例均由色彩图案/正弦音合成,无付费模型:

输入 输出 验证
960×540、2fps、1秒、音轨 3840×2160 2帧,2fps,音轨保留,1.002秒
270×480、2fps、1秒、无音轨 1080×1920 2帧,2fps,1秒
960×540 + 90度旋转信息、含音轨 1080×1920 归一化方向,音轨/帧率/帧数保留
主项目编组提交 960×540 2560×1440 真实 GPU → 持久任务成功 → 本地对象存储归档 → 页面恢复 src

第一轮横屏/竖屏短片含传输与轮询分别约 8.4/6.9 秒。仅是 1 秒 2 帧链路测试,不能推算常见 24/30fps 长视频吞吐。

重启测试发现并修复两处问题:128核机器 FFmpeg 默认滤镜线程超过服务限额;SIGTERM 杀子进程时曾将正在处理的任务记成 failed。修复后同一任务重启续跑,attempts=2,返回真实 4K 结果。未鉴权 401、重复请求复用记录、参数冲突 409 均通过。

验证证据与边界

  • 75 项定向回归通过,包含连线、编组、任务恢复、智能剪辑;新增组内自动选片/成片依赖测试。
  • 浏览器实测:多选编组、布局、整体拖动、调整边框、模板保存导入/必填输入拦截、分镜转换/预览/排序、真实提交参数依赖、刷新恢复排队、解组保留成员。
  • 队列读取仅查询当前待处理任务及直接依赖,避免每次 claim 读取整个项目历史。
  • 真实 PostgreSQL:原子批量提交、幂等、冲突拒绝、项目所有权;上游失败时下游 attempts=0。
  • 真实主项目 API:2K 成片归档成功,FFprobe 验证 H.264/AAC、2560×1440、帧数/时长;刷新后保留结果链接。
  • 当前验收 Chrome 对 127.0.0.1:19440 本地对象存储的媒体加载返回 Media load rejected by URL safety check。没有绕过浏览器策略;网页实际播放不能记为通过。界面增加明确“结果已保存、预览加载失败”的提示与打开链接,避免黑屏被理解为仍在处理。尚需在获准访问的正式/测试对象存储域名上完成播放验收后发布主项目。
  • 本地证据保存在忽略目录 .qa/group-upscale-0918/,可复用 GPU 验证脚本 scripts/qa/video-upscale-service.cjs。正式运行代码/文档不包含密钥或 QA 账号。