开发文档

本地深度视频组件

Windows CPU、CUDA 社区测试、签名下载和发布验证

视频节点的“深度动作捕捉”在本机生成近白远黑的灰度参考视频。使用固定的 Video Depth Anything Small 模型,输入最多 15 秒,输出跟随原视频尺寸和比例;普通帧率保持不变,超过 30 fps 时转换为 30 fps。保存前读取实际输出的宽高与时长,竖屏和方形素材不再强制拉伸为横屏。

深度处理子进程复用桌面安装包内的 ffprobe 与 ffmpeg,启动时将已定位的工具目录加入子进程搜索路径;从 Finder 启动也无需另装系统媒体工具。Windows 深度组件自带工具目录仍保留。

首次使用时会先显示运行组件与模型的下载大小、需要预留的磁盘空间和存放位置,点击“下载并继续”后才下载。也可以在“存储设置 → 深度捕捉组件”提前下载、暂停、继续或重新检查。无需自己安装 Python。空间不足时不能开始下载;释放空间后点击“重新检查”,或先迁移存储目录。

组件安装与深度任务分开管理。任务只读取已安装组件,不会自动补下载。暂停会保留续传文件,退出应用后不会自行恢复下载;桌面应用重启后,未完成的深度任务保留原编号和输入,显示为已暂停,等待用户手动重试。CPU 处理可能较慢且占用较多内存。下载缓存、安装文件、临时解压和分片拼接都会占用空间,界面显示本机所选运行包的实际清单大小。

组件下载与桌面更新共用代理选择规则:显式环境代理优先,否则读取 Windows/macOS 当前用户的静态系统代理,并保留排除地址规则。修改系统代理后重试会读取新配置,不需要在 BeefTV 里重复填写代理。

模型与运行包优先从广州 COS 下载,失败时依次尝试 R2 和 GitHub。下载连接连续 30 秒没有收到数据时会切换到下一下载源,保留已有文件供续传;文件全部下载后仍须通过大小和 SHA256 校验。暂停或退出应用不会触发切换,也不会在重启后自动恢复下载。

手动下载模型时也沿用这套 HTTPS 代理和排除地址配置。暂时无法同步进度时不会把仍在运行的任务标成失败。重新打开画布会查询原任务,完成后取回结果,确认失败或暂停后可手动重试本地处理。失败详情保留进程末尾的错误原因,避免只显示下载进度。

迁移存储目录前会暂停组件下载并保留续传文件。有后台任务正在执行时,迁移会在关闭工作区前停止,提示先取消任务或等待完成,原工作区仍可使用。若关闭工作区本身失败,界面会说明迁移尚未开始、原数据所在位置和重启步骤,技术错误放在“错误详情”中。Windows 的深度处理、显卡检测和进程清理子进程不显示控制台窗口。

平台与 CUDA 社区测试

  • Apple Silicon Mac 保持现有 MPS 路径。
  • Windows x64 没有可用 NVIDIA GPU 时使用 CPU。
  • 检测到 NVIDIA GPU 后,先运行真实 Small 模型探针,通过后才使用 CUDA。CUDA 设备错误最多回退 CPU 一次;若尚未安装 CPU 组件,会提示在存储设置中确认下载,组件页面会切换到所需的 CPU 包,不会自动追加下载。素材、下载、哈希或取消错误不会触发换设备重试。
  • CUDA 包已通过构建与搬迁检查,但真实 NVIDIA 推理仍属社区测试。反馈时请提供显卡型号、驱动版本、BeefTV 版本、输入视频尺寸/时长和任务错误详情,勿附带密钥。

Windows CPU 在一台 AMD 显卡机器上完成了 2 秒和 15 秒合成视频验证,帧数分别为 60 和 450,输出全片可解码。该测试不能代表所有机器的性能或真实人物素材效果。

发布与回退

release-depth-runtime.yml 在官方 main 上构建 CPU 和 CUDA 包,经搬迁自检、CPU 真模型探针、逐文件/分片及完整包哈希检查后,发布不可覆盖的 depth-runtime-v2 组件 Release。CUDA 大包分为小于 2 GiB 的资产。

下载镜像清单使用独立的不可覆盖标签 depth-runtime-mirrors-v1,只增加相同文件的下载地址,不改动原始 depth-runtime-v2 资产。正式组件位于独立的广州 COS 公共下载桶,R2 作为备源;用户视频存储与组件分发分开管理。

签名复用仓库现有 Ed25519 发布密钥。Windows 应用通过编译参数嵌入公钥,先验签清单,再校验下载文件;切换清单镜像仍使用同一公钥验签。Mac 继续使用 v1 清单和固定哈希的编译内备用清单。桌面发布工作流会先验证已上线的镜像组件清单;组件发布失败时,不会发布宣称支持该功能的桌面更新。

同一应用进程内的组件安装串行执行,避免不同任务共写缓存;推理不会被安装锁串行化。取消可中断安装等待、解压、文件校验及 Python/FFmpeg 进程树。

组件资产不覆盖。修复组件时使用新组件标签及新的受信清单地址,并发布引用该地址的新应用版本。桌面回退遵循自动更新发布文档,以更高版本号发布已知可用代码;不降低或覆盖已公开的版本。

本页内容