一篇文章丢进去,十二次工具调用之后,出来一条多分钟的成片。

稿子分段排在最前头。分镜和配音紧随其后。

素材检索、模板套用排在中段,配乐再往后。

评审和修复收尾,拼接成片是最后一步。这些活全由一个 9B 模型自己排。

项目叫 WeVisCut,腾讯微信视觉做的,Apache-2.0 开源。

0101 它是什么

一个文档转视频的 Agent。

WeVisCut 整体流程,从稿子到成片

输入是一篇知识类长文,或者一段口播稿。输出是一条剪好的多分钟视频,分镜配音字幕齐全,素材和背景音乐也都铺好。

底座用的是 Qwen3.5-9B。BF16 精度跑起来要 24GB 显存。

只开界面的话不用显卡,run_studio.sh –no-model 就能看。

它不是文生视频模型,生成画面这件事它不干。

它干的是剪辑。

把现成的素材、模板和配音按稿子的结构组织成一条片子。

配套的 Studio 是个可视时间线,一共八条轨道。每一条对应一样东西,从章节和镜头,到旁白字幕,再到素材模板和音乐,最后是渲染结果。

0202 十二个工具

动作空间一共十二个工具,分三种角色。

十二个工具按生成、评审、执行分成三组

生成组三个。Tool_SegmentArticle 把文章拆章节,Tool_PlanShots 给一章排镜头,Tool_DecorateShot 绑动画模板并填槽位。

评审组三个。Tool_TextQuickJudge 查文稿,Tool_VLMRenderJudge 看渲染出来的画面,Tool_SelfReflect 决定下一步修什么。

执行组六个,负责配音、找素材和渲染单镜头。搜背景音乐,探活外部服务,最后拼接成片也在这组。

每步只调一个工具。工具结果写进状态,循环继续,直到 Tool_StitchVideo 出成片。

0303 关键设计

常规 Agent 框架会把消息一条条攒起来。系统提示在里面,用户输入在里面,工具返回也在里面,越攒越长。

这个项目不这么干。

它的 runtime 是唯一的状态权威。每走一步,模型那一侧把框架攒的消息列表整个丢掉,从 runtime 的状态重新拼一个 JSON 出来。

这个 JSON 里有最近历史,有上一次的观察,有全局状态,还有一份 agent 契约。

模型在第 7 步看到的输入形状,和第 1 步完全一样,和训练时也一样。

左边是多轮累积,右边是单轮重建,每一步看到的形状都一样

左边是常规做法。消息越攒越多,形状越走越偏。

右边是它的做法,每一步都从同一个形状重建。

训练时是单轮输入,部署时也必须是单轮。

多轮累积会让模型看到训练里没见过的形状。行为就跟着漂。

护栏也只做三件事。前置条件不满足就拒绝,重复调用和失败次数超预算就停,成片出来就结束。

它不改参数,也不替你换个工具。

非法调用变成一条观察,模型自己想办法绕过去。

作者把各种”帮忙兜底”的开关全默认关掉。理由写在文档里,训练过的策略,该按它自己恢复的能力来评。

还有一处细节。deepagents 在 requirements.txt 里锁的是精确版本,不是范围。

因为它自带的 ls 和 read_file,还有 glob、grep 这些文件工具必须全部禁掉,模型只能看见训练时那十二个。框架一升级多出一个工具,行为就变了。

0404 数据从哪来

训练数据不是人一条条标的。

团队拿了 3750 条已经剪好的视频。四阶段流水线先反推剪辑意图,再验证重放。

最后得到 134771 条可执行的训练样本。

论文管这一步叫编辑反演。

成品视频里看不到工具调用和失败记录,只能这样倒推。

训练分三步走。先是监督微调和运行时验证的拒绝采样微调。

然后学恢复,最后用对比运行时结果的方式优化决策。

同一套权重同时服务 agent 循环和工具内部的推理,一个进程一块卡。

0505 项目结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
WeVisCut/  
├── aicut_agent/          Agent 装配,chat_model、tools、runtime、middleware
├── server/               推理引擎,模型加载和状态序列化
├── pipeline/             十二个工具的实现,providers 是可插拔素材后端
├── studio/               FastAPI 服务,编辑器、对话改稿、运行管理
├── static/               浏览器界面,时间线和手动编辑
├── external_tool/        渲染器、检索工具、模板库
├── data_construct_pipeline/  轨迹采集流水线,三角色标注
├── configs/              运行配置
├── docs/                 架构、配置、素材源、权重、外部工具说明
├── scripts/              环境安装脚本
├── tests/                回归测试
├── studio_config.yaml    素材源、TTS、渲染服务都在这里配
├── requirements.txt      基础依赖
└── run_studio.sh         启动脚本

分层很干净。server/ 是训练契约所在,聊天模板,状态 JSON 构造,还有工具 schema,都和训练数据生成器共用同一份代码。

pipeline/ 是一个普通 Python 环境,不知道 Agent 是什么。每个工具就是一个函数,写音频,下素材,渲染镜头。

上面这一层不许改动模型看到的东西。

0606 成绩

论文自己搭了 100 个任务的评测,看五个指标。

分镜质量和素材匹配,音画同步和交付成功率,最后是成片可用度。

综合分 90.5。

和 Claude Opus 5 在同一套工具环境下比,质量接近,每产出一分钟成片,少用约 33 倍 token。

这个数字是这篇论文最值钱的地方。分数是它自己报的,第三方还没复现。

0707 怎么跑

Python 3.11 以上,一张 24GB 的 NVIDIA 显卡。

1
2
3
4
5
6
7
git clone https://github.com/Tencent/WeVisCut.git && cd WeVisCut  
pip install -r requirements.txt
pip install -r requirements-gpu.txt
bash scripts/setup_external_tools.sh
hf download tencent/WeVisCut --local-dir checkpoints/weviscut-9b
bash run_studio.sh

打开 http://:8081/,贴稿子,点开始,八条轨道会一条条填满。

权重在后台加载,30 到 60 秒,界面这时候已经能用了。

素材和音乐默认走开放网络检索。想换自己的素材库,改 studio_config.yaml 指向本地目录、HTTP 接口或者一个 Python 插件就行。

改稿支持对话。说一句”把开头那句换掉”,或者说”第 15 秒那个画面换一个”,它只重渲染改动的镜头。

历史版本能回滚。

0808 值不值得

技术含量不低。把整条剪辑流水线做成十二个工具,让一个 9B 模型自己排活。

还把训练和推理的输入格式做成同一份代码路径。这几件事凑齐的开源项目不多。

短板也明确。

论文自己写了,模板覆盖面和素材检索的鲁棒性还不够,编辑任务一超出模板范围就吃力。

素材靠开放网络检索,做商用内容时版权要自己兜。

24GB 显存是硬门槛,个人笔记本基本跑不动。

谁适合用?做知识类视频、口播稿转片子,有自己的素材库和模板,愿意接一套服务的人。

09写在最后

它把整间剪辑室拆成十二个能被模型调用的动作。

意义不在省了多少人力,在于一个 9B 模型开始自己安排整条流水线。

https://github.com/Tencent/WeVisCut

← 返回首页全部文章